Matlab структура векторов в вектор преобразования структуры
Как быстро преобразовать массивы x(1:N), y(1:N) в структуру S(1:N) с полями.x и.y без цикла for? Я могу легко преобразовать x, y в структуру массивов:
S.x = x; S.y = y;
Так как мне нужно работать с отдельными наборами (xi, yi), как я могу преобразовать это в массив struct? Я нашел решение сделать это с помощью табличного типа, но мне не нравится это решение:
S = table2struct(struct2table(S))
1 ответ
Решение
Вы должны просто использовать struct
непосредственно после первого преобразования x
а также y
к клеточным массивам. Когда значения передаются struct
являются массивами ячеек, то это приводит к многоэлементному struct
с теми же размерами, что и этот массив ячеек.
S = struct('x', num2cell(x), 'y', num2cell(y));