Matrix dimensions must agree when doing an elementwise operation

a = 0:1:100;
b = 0:1:100;
c = 0:1:360;
r = 3.3*10^-2;
d = (a+b).*cos(c).*r./2;
Hello, I would like to compute the program with the following code above
When I run the program, I get this error like this.
could anyone explain me what's wrong?

답변 (2개)

John D'Errico
John D'Errico 2022년 4월 11일
편집: John D'Errico 2022년 4월 11일

1 개 추천

How many elements are there in the vector a? (101)
How many elements are there in the vector b? (101)
How many elements are there in the vector c? (361)
Addition of a+b works, because there are the same number of elements in the two vectors.
But then elementwise multiplication would have MATLAB multiply EVERY element of (a+b) with the corresponding element of cos( c). How will that be expected to work? (Poorly.)
MATLAB has no problem mutiplying by r/2, because r is a scalar.
If you want to fix that, then a,b,c all need to have the same number of elements.

댓글 수: 1

thank you for the answer,
actually i want to find "d" value from a,b, and c data every row like this picture
do you know how to solve? thanks

댓글을 달려면 로그인하십시오.

Torsten
Torsten 2022년 4월 11일
편집: Torsten 2022년 4월 11일
Yes, a,b and c must have the same number of elements for that an elementwise multiplication makes sense.
Maybe you mean
d = (a+b).'*cosd(c)*r/2;
?

댓글 수: 2

thank you for the answer,
actually i want to find "d" value from a,b, and c data every row like this picture
do you know how to solve? thanks
a = 0:1:100;
b = 0:1:100;
c = 0:1:360;
r = 3.3*10^-2;
[A,B,C] = ndgrid(a,b,c);
D = (A+B).*cosd(C)*r/2

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

태그

질문:

2022년 4월 11일

댓글:

2022년 4월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by