Проблема с назначением элементов массива классов отдельным переменным в MATLAB - PullRequest
2 голосов
/ 14 июня 2010

Это немного похоже на этот вопрос , этот вопрос и этот вопрос , однако эти решения не работают, поэтому я ' Я спрашиваю мое.

У меня есть массив локально определенных классов, и я хотел бы назначить его нескольким отдельным переменным. Этот шаблон не работает:

%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 - это отдельная ячейка с моим массивом 2x1 в одной ячейке, а не с массивом ячеек 2x1 с одним элементом каждого моего исходного массива в одной ячейке.

Есть идеи?

1 Ответ

3 голосов
/ 14 июня 2010

Вы должны использовать функцию NUM2CELL вместо функции MAT2CELL , чтобы поместить каждый элемент вашего массива a в отдельную ячейку вашего массива ячеек temp.

Использование 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
...