关于MATLAB程序解释

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:02:38
我刚学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