Error using ./ Matrix dimensions must agree.

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.

 采纳的回答

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.

更多回答(1 个)

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.

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by