Function Matlab-多输入错误

Function Matlab-多输入错误,function,matlab,Function,Matlab,这是我的职责: function [o1 o2] = f(t, y) o1 = y(2); o2 = -sin(y(1)); end 当我从命令提示符调用它时: f(1, [2,3]) ans = 3 为什么我只看到o1? 而且,这不起作用 feval(f, 1, [2 3]) 错误消息是 Input argument "y" is undefined. Error in ==> f at 2 o1 = y(2); 请帮助,我不知道发生了什么。如果只调用没有显式输出变量的函数,

这是我的职责:

function [o1  o2] = f(t, y)
o1 = y(2);
o2 = -sin(y(1));
end
当我从命令提示符调用它时:

f(1, [2,3])
ans = 3
为什么我只看到
o1
? 而且,这不起作用

feval(f, 1, [2 3])
错误消息是

Input argument "y" is undefined.

Error in ==> f at 2
o1 = y(2);

请帮助,我不知道发生了什么。

如果只调用没有显式输出变量的函数,它将只返回第一个输出参数,即
o1
,并将其分配给位桶
ans
。要获得这两个输出,请执行以下操作

[o1,o2]=f(1, [2,3])

要使用,您应该传递一个函数句柄,该句柄是前面带有
@
符号的函数名。因此,
feval(@f,1,[2,3])
应该可以工作。

如果只调用没有显式输出变量的函数,它将只返回第一个输出参数,即
o1
,并将其分配给位桶
ans
。要获得这两个输出,请执行以下操作

[o1,o2]=f(1, [2,3])

要使用,您应该传递一个函数句柄,该句柄是前面带有
@
符号的函数名。因此,
feval(@f,1,[2,3])
应该可以工作。

feval应该用函数句柄或字符串调用,所以使用

feval(@f, 1, [2,3])

正如您将看到的,这也只返回函数的第一个输出。要接收更多输出,您必须分配它们,例如

[o1, o2] = feval(@f, 1, [2, 3])

feval应该用函数句柄或字符串调用,所以使用

feval(@f, 1, [2,3])

正如您将看到的,这也只返回函数的第一个输出。要接收更多输出,您必须分配它们,例如

[o1, o2] = feval(@f, 1, [2, 3])

函数句柄版本更可取。函数句柄版本更可取。