matlab中是否有办法强制函数输出一定数量的参数?例如,这就是matlab所做的:
function [a,b,c] = practice
if nargout >=1
a =1;
end
if nargout >=2
b=2;
end
if nargout ==3
c = 3;
end
end
d(1:3) = practice()
% d = [1 1 1]
我想要: d(1:3)=练习() %d = [1 2 3]
我可以不必说出这种行为吗? [d(1),d(2),d(3)] = practice()
答案 0 :(得分:5)
当只使用一个输出参数时,有一个选项让你的函数输出所有内容:
function varargout=nargoutdemo(x)
varargout{1}=1;
varargout{2}=2;
varargout{3}=3;
if nargout==1
varargout={[varargout{:}]};
end
end
对于非统一的返回数据,可能需要切换到单元格
如果您不想更改此功能,可以使用这个更通用的代码:
out=cell(1,3)
[out{:}]=practice
请注意,这会返回一个单元格,而不是一个数组。这是因为数组以逗号分隔的列表转换不可能直接进行。