数组-如何在MATLAB中进行多重分配?
这是我要寻找的示例:
>> foo = [88, 12];
>> [x, y] = foo;
我希望以后会发生以下情况:
>> x
x =
88
>> y
y =
12
但是相反,我得到如下错误:
??? Too many output arguments.
我以为deal()可以做到这一点,但它似乎只适用于细胞。
>> [x, y] = deal(foo{:});
??? Cell contents reference from a non-cell array object.
我该如何解决我的问题? 如果要分别处理它们,是否必须不断按1和2编制索引?
9个解决方案
42 votes
您根本不需要deal(编辑:对于Matlab 7.0或更高版本),例如,您不需要mat2cell; 您可以在没有其他参数的情况下使用num2cell:
foo = [88, 12];
fooCell = num2cell(foo);
[x y]=fooCell{:}
x =
88
y =
12
如果由于其他原因要使用deal,则可以:
foo = [88, 12];
fooCell = n