2016-10-12 2 views
1

У меня есть struct let say ABC с размером «1 * 100» struct и имеет поле EFG, которое содержит значение 1.6.Как добавить значения всех полей в структуре в Matlab?

Мне нужно получить 1.6+1.6+1.6+.......+1.6 100 раз, используя MATLAB.

Я пробовал использовать sum, но это не подходит для этого. Как это может быть сделано?

Sum(ABC(:).EFG) 
sum(ABC(:).EFG,2) 

Они не работали

+0

Вы говорите, что 'ABC' содержит 100 структур, каждый из которых имеет поле под названием« EFG », это правильно? Еще лучше, можете ли вы предоставить код для создания ABC? – houtanb

+0

no i означает ABC Holding 100 из 1 * 1 структур – subha

ответ

3

Вы должны скобки:

for ii = 1:100   % Just creating the struct 
    ABC(ii).EFG = 1.6; % 1x100 struct with the field EFG 
end 

sum([ABC(:).EFG]) 
ans = 
    160.0000 

Обратите внимание на скобки вокруг [ABC(:).EFG].

Причина в том, что без него вы получите выход из ABC(:).EFG, которые не могут быть использованы в sum:

ABC(:).EFG 
ans = 
    1.6000 
ans = 
    1.6000 
ans = 
    1.6000 
ans = 
    1.6000 
ans = 
    1.6000 

Concatenate это, и вы получите то, что вы можете использовать:

[ABC(:).EFG] 
ans = 
    1.6000 1.6000 1.6000 1.6000 1.6000 
Смежные вопросы