2015-12-24 8 views
1

Я определил массив структур следующим образом:Как скопировать массив Matlab в области массива структур

t3(1:num_elems) = struct('prime_idx',0,'second_idx',0,); 

Я хотел бы, чтобы скопировать массив nic в prime_idx области t3, так что t3(x).prime_idx == nic(x) для всех x. Я пробовал:

t3.prime_idx = nic; 

и [t3.prime_idx] = НИК; и t3.prime_idx = [nic]; и [t3.prime_idx] = [nic];

и различные подстановки с добавлением (:) после двух переменных массива t3 и nic.

Как я могу скопировать каждый элемент nic в соответствующее поле prime_idx соответствующего элемента t3?

ответ

1

Выражение s.f, где s - массив , приводит к списку, разделенным запятой. Таким образом, запись s.f = x; недействительна, и [s.f] = x; будет работать, но требует, чтобы x возвращало столько выходов, сколько s имеет элементы. Вам нужно предоставить эти результаты, например. например:

cNic = num2cell(nic); 
[t3.prime_idx] = cNic{:}; 
Смежные вопросы