当前位置:编程学习 > Matlab >>

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软件编程,圆周率的计算(连分数逼近、级数展开、蒙特卡洛方法……)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,