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])
函数句柄版本更可取。函数句柄版本更可取。