Clear Filters
Clear Filters

Matrix dimension must agree

2 views (last 30 days)
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 Comments
David Hill
David Hill on 9 Jan 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.
Saskia Nur Santika
Saskia Nur Santika on 9 Jan 2020
f=15; R=2*f; ho=12; so=10; sia=-((f*so)/(f+so)) x3=-r-sia

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 9 Jan 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 Comments
KALYAN ACHARJYA
KALYAN ACHARJYA on 9 Jan 2020
If your question is answered, you can accept the answer.

Sign in to comment.

More Answers (1)

Mateus Banroc
Mateus Banroc on 9 Jan 2020
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.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!