matlab 程序
>> t=0:0.1:12;
>> num=[1];
>> den=zeros(6,3);
>> zeta=[0.1 0.3 0.5 0.7 0.9 1];
>> y=zeros(length(t),4);
>> for i=1:6
den(i,:)=[1 2*zeta(i) 1];
[y(:,i),x,t]=impulse(num,den(i,:),t);
end
>> plot(t,y,'k')
关于这个程序我有几个问题想请教:
1、为什么把分母矩阵建成(6,3)
2、为什么把y建成(length(t),4)
3、den(i,:) 和 y(:,i)括号里的是什么意思?
谢谢
答案:1、for i=1:6
den(i,:)=
这两行决定den有6行,,[1 2*zeta(i) 1];决定每行3个元素,所以是6*3的。
2、y=zeros(length(t),4);和impulse这个函数有关。只是预定义而已
3、 den(i,:) 和 y(:,i)分别表示den的第i行和y的第i列 , :表示整行整列
PS:den=zeros(6,3);
y=zeros(length(t),4); 都是事先分配内存空间,以提高运算速度,小程序不定义也无妨。
其他:1. zeros(6,3)是建立一个六行三列的矩阵,但是在作图的过程中每次只用一个行向量。
2. 把y建成(length(t),4)是为了让提前给y分配好空间,加快程序运行速度(y每一列的元素个数与t相同)
3. den(i,:) 和 y(:,i)分别表示den的第i行和y的第i列
上一个:如何求一个数组(假设二维)中元素两两之差,matlab编程
下一个:用matlab或maple软件编程,圆周率的计算(连分数逼近、级数展开、蒙特卡洛方法……)