作业帮 > 综合 > 作业

关于MATLAB程序解释

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 03:17:37
关于MATLAB程序解释
我刚学MATLAB,看不懂以下的程序,有高手帮逐行翻译下吗?小弟在此谢过了~
function [Phi,Gamma] = c2d(a,b,t)
error(nargchk(3,3,nargin));
error(abcdchk(a,b));
[m,n] = size(a);
[m,nb] = size(b);
s = expm([[a b]*t; zeros(nb,n+nb)]);
Phi = s(1:n,1:n);
Gamma = s(1:n,n+1:n+nb);
%这个函数的名字叫做c2d,对它输入a,b,t,则返回Phi和Gamma两个值.
function [Phi, Gamma] = c2d(a, b, t)
error(nargchk(3,3,nargin));%检查输入变量的个数,变量个数不能大于3,也不能小于3,否则报错.
error(abcdchk(a,b));% 检查a,b,c,d各维空间向量是否前后一致,否则报错.
[m,n] = size(a);%a是m行n列的矩阵
[m,nb] = size(b);%b是m行mb列的矩阵
s = expm([[a b]*t; zeros(nb,n+nb)]);
%对括号里面的矩阵,进行矩阵指数expm运算.括号里面的矩阵是:上半部分 [a*t b*t],下半部分全是零.零的个数是nb行,n+nb列
Phi = s(1:n,1:n);% 取s的1到n行,1到n列,组成Phi
Gamma = s(1:n,n+1:n+nb);%取s的1到n行,n+1到n+nb列,组成Gamma