matlab的M文件调用另一个M文件的多个结果时出现 ”输出太多参数 "错误

也就是说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 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}
温馨提示:答案为网友推荐,仅供参考
相似回答