对于普通的MATLAB数组,有没有像deal()这样的东西?

时间:2010-04-29 20:53:02

标签: arrays matlab variables variable-assignment

  

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

在处理单元格数组时,我可以使用deal()函数将单元格分配给输出变量,例如:

[a, b, c] = deal(myCell{:});

或只是:

[a, b, c] = myCell{:};

我想对一个简单的数组做同样的事情,例如:

myArray = [1, 2, 3];
[a, b, c] = deal(myArray(:));

但这不起作用。有什么替代方案?

2 个答案:

答案 0 :(得分:9)

一种选择是首先使用NUM2CELL将数组转换为单元格数组:

myArray = [1, 2, 3];
cArray = num2cell(myArray);
[a, b, c] = cArray{:};

如您所知,您甚至不需要使用DEAL来分发单元格内容。

答案 1 :(得分:0)

不是很漂亮,但是:

myArray = 1:3;
c = arrayfun(@(x) x, myArray , 'UniformOutput', false); 
c{:}