How do I resolve the error "Matrix dimensions must agree" here?

조회 수: 1 (최근 30일)
Julia Hariharan
Julia Hariharan 2020년 11월 9일
답변: Mohamad 2020년 11월 9일
I'm trying to multiply 2 matricies in MatLab, the first is a 13x13 and the second is a 13x4. The inner dimensions of these matricies should agree and yet I am still getting the error "Matrix dimensions must agree". I have pasted the code below just to get some other eyes on it to see if maybe you guys can catch something that I am missing, thank you.
a_mat = [0 3.7699e+02 0 0 0 0 0 0 0 0 0 0 0;
-2.2138e-01 -5.8734e-04 -1.1884e-01 -1.0702e-01 -1.6010e-02 -6.9250e-02 -2.2234e-05 -5.8734e-05 2.2021e-01 -5.8734e-04 4.2564e-02 -1.8689e-04 2.2012e-03;
1.1124e-01 -4.4138e-04 -2.1738e+00 2.3382e+00 -1.1894e-02 -5.1077e-02 -1.6709e-05 1.4555e+00 -1.1212e-01 -4.4138e-04 -2.5957e-03 -1.4015e-04 2.5927e-02;
-3.5075e+00 2.3003e-02 3.0169e+01 -3.4136e+01 3.1049e-02 7.4233e-02 8.7077e-04 2.3003e-03 3.5534e+00 2.3003e-02 -1.4998e-01 7.3064e-03 -1.1509e+00;
-2.4341e-01 -3.4554e-03 -3.0690e-02 -2.8001e-02 -8.4423e+00 6.3190e+00 -1.3080e-04 2.3003e-03 3.5534e+00 2.3003e-02 -1.4998e-01 7.3064e-03 -1.1509e+00;
-2.5771e+00 -3.6583e-02 -3.2492e-01 -2.9646e-01 1.5185e+01 -2.1623e+01 -1.3849e-03 -3.6583e-03 2.5039e+00 -3.6583e-02 1.2545e+00 -1.1629e-02 1.1174e+00;
2.8696e+00 -6.6513e-02 -9.0935e+00 -8.1915e+00 2.5309e+00 1.1307e+01 -1.5244e-01 -6.6513e-03 -3.0025e+00 -6.6513e-02 1.3396e+00 -2.1134e-02 2.6921e+00;
2.2109e+01 -1.0098e+00 -1.5145e+02 -2.0588e+02 4.5756e+01 2.0389e+02 1.4923e+01 -1.3069e+02 -2.4127e+01 -1.0098e+00 2.3010e+01 -3.2087e-01 3.8995e+01;
0 0 0 0 0 0 0 0 0 3.7699e+02 0 0 0;
2.2016e-03 2.7398e-06 9.4525e-04 8.5103e-04 2.1091e-04 9.1859e-04 1.0372e-07 2.7398e-07 -2.1975e-03 -3.3333e-01 1.6015e-04 -2.9255e-05 -2.6203e-04;
0 0 0 0 0 0 0 0 0 0 0 0 1.0000e+00;
-4.8992e-05 9.6388e-07 4.4008e-05 3.9713e-05 -1.8464e-05 -8.3461e-05 0 0 5.2616e-05 9.6388e-07 -2.3268e-05 -3.0392e-02 -3.6324e-05;
-2.8199e+01 8.1414e-01 5.2452e+01 4.7296e+01 -1.6444e+01 -7.4507e+01 3.0819e-02 8.1414e-02 2.9826e+01 8.1414e-01 -1.6107e+02 7.5103e+00 -1.8906e+02]
b_mat=[0 0;
-5.8734e-04 4.2564e-02;
-4.4138e-04 -2.5957e-03;
2.3003e-02 -1.4998e-01;
-3.4554e-03 1.1849e-01;
-3.6583e-02 1.2545e+00;
-6.6513e-02 1.3396e+00;
-1.0098e+00 2.3010e+01;
0 0;
2.7398e-06 1.6015e-04;
0 1.0000e+00;
1.0000e+00 -2.3268e-05;
8.1414e-01 -1.6107e+02]
c_ang=[ 7.7302e-01 -2.4427e-04 2.3391e-01 2.1050e-01 9.4889e-02 4.1784e-01 -9.2469e-06 -2.4427e-05 2.2649e-01 -2.4427e-04 3.4508e-02 -7.7871e-05 -1.0880e-02;
1.3210e-04 0 5.6710e-05 5.1057e-05 1.2656e-05 5.5121e-05 0 0 9.9987e-01 0 9.6111e-06 -1.7549e-06 -1.5718e-05;
5.6135e-01 6.2868e-05 2.0058e-01 1.8053e-01 6.2297e-02 2.7339e-01 2.3799e-06 6.2868e-06 4.3877e-01 6.2868e-05 5.3039e-02 1.9510e-05 -4.0659e-02;
5.6415e-01 -2.6887e-05 1.9536e-01 1.7582e-01 6.3890e-02 2.8078e-01 -1.0178e-06 -2.6887e-06 4.3580e-01 -2.6887e-05 4.0344e-02 -9.0058e-06 -2.6848e-02;
1.3067e-04 0 5.8178e-05 5.2382e-05 1.0840e-05 5.2511e-05 0 0 9.9992e-01 0 7.3228e-06 1.2864e-03 -1.9291e-05]
c_v=[-5.9420e+01 1.5319e+00 1.0999e+02 9.9164e+01 -3.4720e+01 -1.5668e+02 5.7992e-02 1.5319e-01 6.2482e+01 1.5319e+00 -3.3844e+02 4.8650e-01 -3.7722e+02;
-2.4548e-02 4.8296e-04 2.2051e-02 1.9899e-02 -9.2518e-03 -4.1819e-02 1.8283e-05 4.8296e-05 2.6364e-02 4.8296e-04 -1.1659e-02 -1.5228e+01 -1.8200e-02;
5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02 5.0106e+02;
-2.8284e+01 7.2927e-01 5.2368e+01 4.7211e+01 -1.6529e+01 -7.4592e+01 2.7606e-02 7.2927e-02 2.9741e+01 7.2927e-01 -1.6116e+02 7.4833e+00 -1.7962e+02]
C=[c_v(3,:);
c_v(2,:);
c_ang(3,:);
c_ang(2,:)]
C_new=transpose(C)
row_vector=a_mat.*C_new

답변 (1개)

Mohamad
Mohamad 2020년 11월 9일
Hi , follow this correction , now you get the row_vector matrix with size ( 13 x 4 )
row_vector=a_mat*C_new ;

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by