#matlab
#matlab
Вопрос:
Я хотел бы, чтобы поле моей индексированной структуры принимало значение, аналогично индексированное в другом векторе:
struc(1:3).value=1:3
Однако это приводит к ошибке "Expected one output from a curly brace or dot indexin& expression, but there were 2 results."
Заключение левой или правой части строки назначения в квадратные скобки не помогает. И я думаю, deal
что это не подходит, поскольку оно просто распределяет одно и то же значение, а не присваивает однозначные значения по вектору.
Как я могу добиться такого присвоения переменной, кроме как с помощью цикла for? Использование Matlab 2016a.
Ответ №1:
Если вы уже создали struc
, просто выполните:
c = num2cell(1:3);
[struc(1:3).value] = c{:};
Или создайте нужную структуру в одной строке:
struc = cell2struct(num2cell(1:3), {'value'});