Problem with assigning elements of a class array to individual variables in MATLAB

霸气de小男生 提交于 2019-12-11 01:26:23

问题


This is a bit of a duplicate of this question, this question, and this question, however those solutions don't work, so I'm asking mine.

I've got an array of locally defined classes and I'd like to assign it to multiple, individual variables. This pattern doesn't work:

%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.

Because temp is a single cell, with my 2x1 array in one cell, rather than a 2x1 cell array with one element of each of my original array in one cell.

Any ideas?


回答1:


You should use the function NUM2CELL instead of the function MAT2CELL in order to place each element of your array a in a separate cell of your cell array temp.

Using MAT2CELL with just one input is equivalent to doing temp = {a};, and in my version of MATLAB (R2009a) I actually get this warning:

>> 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


来源:https://stackoverflow.com/questions/3038152/problem-with-assigning-elements-of-a-class-array-to-individual-variables-in-matl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!