Index exceeds the number of array elements. Index must not exceed 1.

1 次查看(过去 30 天)
close all;
>> clear all;
>> z=[0,0.1,0.2,0.4,0.6,0.7,0.8,0.9,1];
>> num=[0 0 75];
>> t=0:0.1:25;
>> u=ones(1,251);
>> r=t;
>> for i=1:1:9
den=[1 20*z(i) 75];
>> T=tf(num, den);
>> [y{i}]=lsim(T,r,t);
>> subplot(5,2,1);
>> plot (t,y{i},t,r);
>> title('time response of second order systemfor different values of zeta');
>> z=num2str(z(i));
>> end;
>> subplot(5,2,10);
>> plot(t,y{1},t,y{2},t,y{3},t,y{4},t,y{5},t,y{6},t,y{7},t,y{8},t,y{9});
>> axis([0 1 0 1]);
>> xlabel('time sec');
>> ylabel('amplitude');
>> title('time response for second second order systemfor different values of zeta');
>> legend ('z=0','z=0.1','z=0.2','z=0.4','z=0.6','z=0.7','z=0.8','z=0.9','z=1');

回答(1 个)

Richard Stephens
Richard Stephens 2021-10-20
The line
z=num2str(z(i));
should be deleted: it overwrites z which becomes a single char.
It would be helpful if you submitted code without the ">>" by copying from the Command History window.

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by