所以我想说我有一个向量p = [1 2 3]
。我想要一个看起来像这样的命令:
[x y z] = p;
因此x = p(1),y = p(2),z = p(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