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));
Другие вопросы по тегам