Учитывая некоторые данные - например (в моем случае) - как следующую табличную
Name |pos_x|pos_y|pos_z
------------------------
Point1| .1| .1| .2
Point2| 0.0| 0.0| .1
Middle| .1| .2| .1
Point3| 0.0| 1| 0.0
и, возможно, после импорта этих данных из Excel все значения сохраняются в массиве ячеек (давайте назовем его celldata
).
В целях тестирования эту ячейку можно создать со строкой
celldata={'Point1' .1 .1 .2;'Point2' 0 0 .1;'Middle' .1 .2 .1;'Point3' 0 1 0}
Для этого примера ячейка имеет размер 4x4.
На данный момент я создаю структуру со следующими строками
point.name=char(celldata(:,1));
point.posxyz=cell2mat(celldata(:,2:4));
Это приводит к point size 1x1 Class struct
. Я ищу эффективный способ сгенерировать его как point size 4x1 Class struct
— таким образом, один элемент для каждой строки в таблице выше — все с одной и той же внутренней структурой: имя и координаты.
Я уже пробовал cell2struct
, но это только насколько я пытался разворачиваться по одному измерению без группировки некоторых столбцов.
Кроме того, это не дубликат Предварительно выделить структуру ячеек в Matlab, как в данном случае, у меня есть много разных столбцов - или, может быть, даже динамическое количество столбцов.
dataset
будет чем-то полезен? - person fpe   schedule 29.04.2013for punkt=point,disp([punkt.name ':' num2str(norm(punkt.posxyz))]),end
в качестве примера. Особо не нужно проверять, сколько элементов. Вы знаете что-нибудь лучше? - person Bastian Ebeling   schedule 29.04.2013