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?
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 arraytemp
.Using MAT2CELL with just one input is equivalent to doing
temp = {a};
, and in my version of MATLAB (R2009a) I actually get this warning: