2016-01-08 2 views
0

Можно ли легко комбинировать значения из полей массива структур в единый массив без прокрутки каждой отдельной структуры в массиве?Matlab: Как объединить значения полей структурных массивов

Для справки см приложенный код:

% build random struct array with only one field 
% for demonstration only 
clear i s out; 
for i = 1:10 
    s(i).value = rand; 
end 
s 

% not working, as it returns multiple results 
s(1:end).value 

% combine all "value" into a single array using for-loop 
out = zeros(length(s), 1); 
for i = 1:length(s) 
    out(i) = s(i).value; 
end 
out 

Проще говоря, цель состоит в том, чтобы своего рода «сливаться» поля все «значение».

ответ

2

Вы можете получить его, используя следующие:

out = [s.value] 

В s.value возвращает все значения и [...] сделать массив из них.

+0

Я был абсолютно уверен, что я это пробовал, но, очевидно, я был неправ. Благодаря! Для полноты: (:) не нужно, только [...] – Alexander

+0

@Xanos - я исправил ответ. –

Смежные вопросы