Matrix Dimensions do not agree?

3 ビュー (過去 30 日間)
Michael Jacobson
Michael Jacobson 2018 年 5 月 9 日
編集済み: Stephen23 2018 年 5 月 10 日
Trying to figure out why this for loop isn't working. Both fz and lsFX are 1x7 arrays, so I don't get why I'm getting the error matrix dimensions must agree
lsFX = zeros(1,7);
fz = 0.2e+03:0.2e+03:1.4e+03;
sr = -0.26:0.001:0.26;
for i=1:7
lsFX(1,i) = fz.*D.*sin(C.*atan((B.*(sr+.045)-E.*(B.*(sr+.045)...
-atan(B.*(sr+.045))))))-400;
end

採用された回答

Geoff Hayes
Geoff Hayes 2018 年 5 月 9 日
Michael - but sr is
sr = -0.26:0.001:0.26;
which is 1x521 which is the size of
sin(C.*atan((B.*(sr+.045)-E.*(B.*(sr+.045)...
-atan(B.*(sr+.045))))))-400
So when you are then multiplying that result by fz which is the 1x7...and so the error message makes sense.
  3 件のコメント
Geoff Hayes
Geoff Hayes 2018 年 5 月 10 日
Michael - so you want to multiply each of the seven values in fz against all of the elements in sr? Could you not transpose fz to get a 7x1 matrix and then multiply that by the sr, the 1x521, to get a 7x521 result?
Michael Jacobson
Michael Jacobson 2018 年 5 月 10 日
Yes! I had actually realized this earlier before I saw your post Geoff. I guess I was stuck thinking one dimensionally, but thankfully I was looking at some homework that refreshed my memory on matrix operations.
I also got rid of the loop and my plot is exactly as I want it now. Thank you for your answers sir !

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMathematics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by