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)] = 练习()

最佳答案

当仅使用单个输出参数时,有一个选项可以让您的函数输出所有内容:

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

请不要,这会返回一个单元格,而不是一个数组。那是因为数组到逗号分隔列表的转换不能直接进行。

关于MATLAB 强制函数输出 n 个参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31145680/

10-12 04:43