请跟我说,我是matlab的新手。我正在尝试将调用存储到eigenvalue
的另一个函数中,但是它给了我错误:Too many output arguments
。
function eigenvalue(M)
syms l;
eq = det(M - l*[1 0; 0 1]);
solve(eq == 0)
end
我尝试过以多种不同的方式存储它,但似乎没有任何效果:
>> a = eigenvalue(M)
Error using eigenvalue
Too many output arguments.
>> [a, b] = eigen(M)
Error using eigenvalue
Too many output arguments.
奇怪的是,如果我求解正态多项式方程式,我可以sol=solve(x^2==4)
完全正确,并且可以毫无问题地访问sol(0)
和sol(1)
。我想我还没有选择一个简单的matlab概念,感谢任何愿意帮助的人!
答案 0 :(得分:3)
您的问题是您的函数中没有任何输出参数。
function eigenvalue(M)
在MATLAB中,应该 *使用以下语法:
function output = func_name(input_1,input_2,...)
您有两种选择:
您可以跳过第一行并将其另存为脚本,如下所示:
syms l;
eq = det(M - l*[1 0; 0 1]);
solve(eq == 0)
或者,您可以将其保存为函数,但使用输出变量,如下所示:
function output = eigenvalue(M)
syms l;
eq = det(M - l*[1 0; 0 1]);
output = solve(eq == 0)
end
*你应使用我所描述的语法,但你可以使用你使用的语法。但是,如果这样做,除了可能将结果打印到屏幕外,该功能不会给你任何回复。您将无法使用函数内部创建的任何变量。
答案 1 :(得分:0)
如果希望函数提供输出参数,则必须在函数定义中声明它。 E.g。
function a = eigenvalue(M)
然后,您需要确保为函数体中的每个输出变量赋值。