关于MATLAB程序解释
我刚学MATLAB,看不懂以下的程序,有高手帮逐行翻译下吗?小弟在此谢过了~!function[Phi,Gamma]=c2d(a,b,t)error(nargchk(3,...
我刚学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); 展开
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); 展开
1个回答
2007-10-12
展开全部
%这个函数的名字叫做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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询