将类数组的元素分配给MATLAB中的各个变量的问题

问题描述:

这是this question,this questionthis question的一个重复的位,但这些解决方案不起作用,所以我问我的。将类数组的元素分配给MATLAB中的各个变量的问题

我有一个本地定义的类的数组,我想将它分配给多个单独的变量。这种模式不工作:

%a is 2x1 of MyClass 
temp = mat2cell(a); 
[x,y] = temp{:}; 

%throws: 
??? Insufficient number of outputs from right hand side of equal sign to satisfy assignment. 

由于temp是单细胞,并在一个单元我的2×1阵列,而不是在一个小区与每个我的原始阵列中的一个元件的2×1单元阵列。

任何想法?

你应该为了你的阵列a的每个元素放置在你的单元阵列temp的一个单独的电池使用功能NUM2CELL而不是函数MAT2CELL的。

使用MAT2CELL只需输入相当于做temp = {a};,并在我的版本的MATLAB(R2009a)其实我得到这样的警告:

>> temp = mat2cell(a); 
Warning: Single input behavior is obsolete and will be removed in a 
     future release of MATLAB. Use C={X} instead. 
> In mat2cell at 54 
+1

感谢。随着mat2cell的失败,我没有去看看num2cell。弗拉金的数学作品。 Docs说:“C = num2cell(A)将数字数组A转换为单元数组C”,但是继续说:“num2cell适用于所有数组类型。” – Marc 2010-06-14 22:32:07