Error using ./ Matrix dimensions must agree.

1 view (last 30 days)
Hi, I have this equation entered:
y=tan(r)*x-(g.*x.^2./(2*vo^2*(cos(r)).^2))+yo;
vo,g,and yo are all constant scalars.
x is a column vector with 17 entries
r is a row vector with 5 entries
When attempting to run the code I keep getting Matrix dimensions error. I want to make it so that each value of r multiplies with every value of x. Such that I will get a matrix with the values of y, with each value of r with varying x.
Any help would be greatly appreciated. Thanks.

Accepted Answer

Steven Lord
Steven Lord on 29 Sep 2016
If you're using release R2016b you can take advantage of implicit expansion. You need to make one minor modification by replacing the first * operator (between tan(r) and x) with the .* operator.

More Answers (1)

Massimo Zanetti
Massimo Zanetti on 29 Sep 2016
To achieve what you want, you have to generate all possible copules of values from x and r (no matter their sizes). Given your vectors x,r, implement this:
x=x(:); r=r(:);
[R,X] = meshgrid(r,x);
Y = tan(R).*X-g*X.^2./(2*vo^2*cos(R).^2)+yo;
Then, Y will be your matrix.

Tags

Community Treasure Hunt

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

Start Hunting!