MATLAB将矢量元素分配给各个变量的最简单方法

时间:2010-05-23 20:38:11

标签: matlab

  

可能重复:
  How do I do multiple assignment in MATLAB?

所以我想说我有一个向量p = [1 2 3]。我想要一个看起来像这样的命令:

[x y z] = p;

因此x = p(1),y = p(2),z = p(3)。

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:21)

转换为单元格数组。

pCell = num2cell(p);
[x,y,z] = pCell{:};

答案 1 :(得分:2)

您可以使用deal

[x y z] = deal( p(1), p(2), p(3) )

答案 2 :(得分:1)

好吧,事实证明没有办法单行,所以我写了一个函数。

function varargout = deal_array(arr)
    s = numel(arr);
    n = nargout;

    if n > s
        error('Insufficient number of elements in array!');
    elseif n == 0
        return;
    end

    for i = 1:n
        varargout(i) = {arr(i)}; %#ok<AGROW>
    end
end