In an assignment A(I) = B, the number of elements in B and I must be the same.

Ben Booth

Ben Booth (view profile)

님이 질문을 제출함. 18 Feb 2015
최근 활동 Ben Booth

Ben Booth (view profile)

님이 댓글을 추가함. 18 Feb 2015
Erik S.

Erik S. (view profile)

님이 답변을 채택함.
Hi all,
I am using Matlab for a university tutorial, and have been assigned the task of:
"Plot the response of G1(s) to the first cycle of a sine wave
G1(s) = (3s+2) / (2s^3+4s^2+5s+1)
u(t) = | 0 for t<0 | 2*sin(10*pi*t) for 0<t>8 | 0 for t>=8"
In order to solve the problem, I have written the following code:
num=[3 2];
den=[2 4 5 1];
time=[0:0.02:10]';
u=zeros(length(time),1);
x=2*sin(10*pi*time);
for i=min(find(time>=0 & time<8):length(time))
u(i)=x;
end
sys=tf(num,den);
y=lsim(sys,u,time);
plot(time,y,'r',time,u,'m')
However, I am receiving the error "In an assignment A(I) = B, the number of elements in B and I must be the same."
I understand that this issue is arising because I am trying to input a vector (x) into a scalar (i), however, I am unsure how I can overcome this issue, as my value for x is constantly changing. Could anyone advise me on a function which can be used, or any modification I could use to resolve the issue.

로그인 to comment.

답변 수: 3

Erik S. (view profile)

on 18 Feb 2015

I attach a file, is it the result you need?

Ben Booth

Ben Booth (view profile)

on 18 Feb 2015
Hi Erik,
This looks very similar to the result which I require.
Thank you very much for all your help.

로그인 to comment.

Erik S. (view profile)

on 18 Feb 2015

Hi Your x in the loop is a vector write
y(i)=x(i)

Ben Booth

Ben Booth (view profile)

on 18 Feb 2015
Hi Erik,
After making the modification you suggested the error is removed, however, I am not getting the desired plot. As shown below, the output remains at a constant 0, and does not alter with time. Is there anything else which you can suggest?

로그인 to comment.

Erik S. (view profile)

on 18 Feb 2015

Hi
Your loop condition is not correct I think. It will only run 1 time. At which iteration should it start and finish?

로그인 to comment.

Translated by