Как сложить структурный массив в Matlab? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть массив структур, в котором каждое значение является числом, я хотел бы сделать сумму этих структур.

Пример:

S - структурный массив, и каждый элемент имеет одинаковую структуру

S(1).a = 1
S(1).b.c = 1
S(1).b.d = 2

S(2).a = 2
S(2).b.c = 3
S(2).b.d = 4

сумма (S) должна быть структурой 'SUM' с полями:

SUM.a = 1+2 = 3
SUM.b.c = 1+3 = 4
SUM.b.d = 2+4 = 6

1 Ответ

0 голосов
/ 02 июля 2018

Я не нашел ни одной функции matlab для этого, поэтому я запрограммировал эту функцию:

function out = sumStruct(in)
% sum structure field per field

    if isstruct(in)
        for f = fields(in)'
            out.(f{:}) = sumStruct([in.(f{:})]);
        end
    else
        out = sum(in);
    end
end

Если я получу SUM = sumStruct (S), я получу то, что хочу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...