Matrix dimension must agree

Ihave a code
xd=-(sqrt(R²-ho²)):0.5:x3;
xd1=x3;
yd1=y3;
xd2=-(sqrt(R²-ho²));
yd2=ho;
yd=(((xd-xd1)./(xd2-xd1)).*(yd2-yd1))+(yd1);
plot(xd,yd,'k')
The result is:
Eror using .* Matrix dimensions must agree.
Please help mee ?
*code formatted by Adam Danz; the squared superscripts are ambiguous (^2 or .^2) so I left them as-is - AD

3 Commenti

KALYAN ACHARJYA
KALYAN ACHARJYA il 9 Gen 2020
Modificato: KALYAN ACHARJYA il 9 Gen 2020
Please define all those parameters. R,ho,x3,sd1....etc
David Hill
David Hill il 9 Gen 2020
You need to provide more information. Look at the size of each of your matrixes. If you want help you will need to provide examples of your variables.
f=15; R=2*f; ho=12; so=10; sia=-((f*so)/(f+so)) x3=-r-sia

Accedi per commentare.

 Risposta accettata

Adam Danz
Adam Danz il 9 Gen 2020
In this line
yd = (((xd-xd1)./(xd2-xd1)).*(yd2-yd1))+(yd1);
% ^^
The terms to the left and right of .* are not the same size. The dot-asterisk notation specifies element-wise multiplication where x .* y is interpretted as x(i) * y(i). That requires that x and y are the same size.
The two lines below must produce the same output.
size(((xd-xd1)./(xd2-xd1)))
size((yd2-yd1))

2 Commenti

Thankyouu
If your question is answered, you can accept the answer.

Accedi per commentare.

Più risposte (1)

Hi Saskia,
In your code, I guess that only xd and yd are vectors, right? So x3, y3, R and ho should be scalars.
I don't know what are the values of these scalars but I tried this and it worked.
R=10; ho=2;
x3=10;
y3=10;
xd=-(sqrt(R^2-ho^2)):0.5:x3;
xd1=x3;
yd1=y3;
xd2=-(sqrt(R^2-ho^2));
yd2=ho;
yd=(((xd-xd1)./(xd2-xd1)).*(yd2-yd1))+(yd1);
plot(xd,yd,'k')
You must check if R, ho, x3, y3 are scalars.

Categorie

Scopri di più su Debugging and Improving Code in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by