Matrix dimensions must agree when doing an elementwise operation
Mostrar comentarios más antiguos
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?
Respuestas (2)
John D'Errico
el 11 de Abr. de 2022
Editada: John D'Errico
el 11 de Abr. de 2022
1 voto
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 comentario
Michael Andersen
el 11 de Abr. de 2022
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 comentarios
Michael Andersen
el 11 de Abr. de 2022
Torsten
el 11 de Abr. de 2022
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
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

