2015-02-21 4 views
0

Я в принципе хочу векторизовать следующее:Назначение вектора Matlab в соответствии с функцией

vect_y = zeros(1,numel(vect_x); 
for i = 1:numel(vect_x) 
    vect_y = sum(vect_x(1:i)); 
end 

Возможно ли это? В качестве примера, я пытался использовать arrayfun следующим образом:

y = arrayfun(@(y) sum(y), vect_x(1:1), vect_x(1:2), ..., vect_x(1:n)); 

Но это не будет работать, и это не чистый.

Редактировать: Итак, теперь я знаю, что cumsum решает вышеупомянутое, но мне любопытно, как я буду делать это для любой функции.

+1

Похоже, вы хотите сделать cummulative сумму: [ 'cumsum'] (http://www.mathworks.com/help/ Matlab/исх/cumsum.html). – TroyHaskin

+0

'cumsum (vect_x)'? –

+0

wow THAT AMAZING! Спасибо!! – itzjustricky

ответ

0

То, что вы хотите, может быть сделано с cumsum функции непосредственно:

vect_y = cumsum(vect_x); 
Смежные вопросы