Error: Vectors must be the same length.

13 次查看(过去 30 天)
Hi guys ! I'm getting this error when trying to plot y3: Vectors must be the same length. I am very new to matlab and I understand this is a common problem but couldn't figure out how to change my code so it works just by looking at other people's more complicated situations of the same error.
t1=0:2.5/251:2.5;
t2=0:0.25/251:0.25;
t3=0:10/1001:10;
y1=4*cos(4.8*pi*t1+3*pi/2)+1.5*cos(12*pi*t1+pi/4);
y2=-5*cos(8*pi*t2+0);
y3=y1+y2;
subplot(311);
plot(t1,y1);
subplot(312);
plot(t2,y2);
subplot(313);
plot(t3,y3);
Error using plot
Vectors must be the same length.
Error in lab3ex2 (line 15)
plot(t3,y3);
Anyone can tell me what to do exactly so it works? Thank you in advance !
  4 个评论
Stephen23
Stephen23 2017-12-3
@Mihnea Capat: I asked how you defined t. What is this:
t = ... ?
Mick
Mick 2017-12-3
I think that inside y1 there should be t1 instead of t and inside y2 there should be t2 instead of t. My apologies. Forget about t

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2017-12-3
The easy solution is to use the linspace function to make them all the same lengths:
t1 = linspace(0, 2.5, 250);
t2 = linspace(0, 0.25, 250);
t3 = linspace(0, 10, 250);
y1 = @(t) 4*cos(4.8*pi*t+3*pi/2)+1.5*cos(12*pi*t+pi/4);
y2 = @(t) -5*cos(8*pi*t+0);
y3 = y1(t1) + y2(t2);
subplot(311); plot(t1,y1(t1))
subplot(312); plot(t2,y2(t2))
subplot(313); plot(t3,y3)
I created anonymous functions from your equations to make this even easier.
  6 个评论
Mick
Mick 2017-12-3
I managed to solve it by writing y3=4*cos(4.8*pi*t3+pi*3/2)+1.5*cos(12*pi*t3+pi/4)+5*-cos(t3*8*pi); instead of y3=y2+y1 and now it works. Your code gives exactly the same output as the one I have now. Thank you a lot though because now I can see different ways of doing it and learning about linspace and anonymous functions. Have a good day !

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by