In an assignment A(I) = B, the number of elements in B and I must be the same.
2 次查看(过去 30 天)
显示 更早的评论
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.
Thank you in advance, Ben
0 个评论
采纳的回答
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!