matlab的M文件调用另一个M文件的多个结果时出现 ”输出太多参数 "错误
也就是说matlab的M文件怎样调用另一个M文件的多个结果,如:functionQ(A)symsx;l=[];[m,n]=size(A);AH=A';E=eye(n,n)...
也就是说matlab的M文件怎样调用另一个M文件的多个结果,如:
function Q(A)
syms x;
l=[];
[m,n]=size(A);
AH=A';
E=eye(n,n);
l=solve(det(x*E-AH*A))
for i=1:n
D{1,i}=l(i)*E-AH*A;
end
celldisp(D)
上面的程序输出三个结果怎样有另一个M文件逐一调用
不好意思,漏了一点
A=[1 1 0;0 0 1];
Q(A)
这样输出有三个结果 展开
function Q(A)
syms x;
l=[];
[m,n]=size(A);
AH=A';
E=eye(n,n);
l=solve(det(x*E-AH*A))
for i=1:n
D{1,i}=l(i)*E-AH*A;
end
celldisp(D)
上面的程序输出三个结果怎样有另一个M文件逐一调用
不好意思,漏了一点
A=[1 1 0;0 0 1];
Q(A)
这样输出有三个结果 展开
1个回答
展开全部
首先你需要定义函数的返回值,没有返回值,你退出这个函数后就什么都得不到。
function output = Q(A) %%%%%% 加入返回值
syms x;
l=[];
[m,n]=size(A);
AH=A';
E=eye(n,n);
l=solve(det(x*E-AH*A));
for i=1:n
D{1,i}=l(i)*E-AH*A;
end
output = D; %%%% 将D返回
将以上代码存储于一个命名为Q的m文件
然后调用函数,在命令窗口或另外一个m文件输入:
>>A=[1 1 0;0 0 1];
>>result = Q(A); %%% 获得的result是一个1*3的元胞
>>celldisp(result)
result{1} =
[ -1, -1, 0]
[ -1, -1, 0]
[ 0, 0, -1]
result{2} =
[ 1, -1, 0]
[ -1, 1, 0]
[ 0, 0, 1]
result{3} =
[ 0, -1, 0]
[ -1, 0, 0]
[ 0, 0, 0]
如果你要调用result里的每一个元胞元素,只要用rusult{i} i = 1 ,2 ,3 就行
例如调用第二个: rusult{2}
function output = Q(A) %%%%%% 加入返回值
syms x;
l=[];
[m,n]=size(A);
AH=A';
E=eye(n,n);
l=solve(det(x*E-AH*A));
for i=1:n
D{1,i}=l(i)*E-AH*A;
end
output = D; %%%% 将D返回
将以上代码存储于一个命名为Q的m文件
然后调用函数,在命令窗口或另外一个m文件输入:
>>A=[1 1 0;0 0 1];
>>result = Q(A); %%% 获得的result是一个1*3的元胞
>>celldisp(result)
result{1} =
[ -1, -1, 0]
[ -1, -1, 0]
[ 0, 0, -1]
result{2} =
[ 1, -1, 0]
[ -1, 1, 0]
[ 0, 0, 1]
result{3} =
[ 0, -1, 0]
[ -1, 0, 0]
[ 0, 0, 0]
如果你要调用result里的每一个元胞元素,只要用rusult{i} i = 1 ,2 ,3 就行
例如调用第二个: rusult{2}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询