anonymous function which outputs a vector of sums when the input is a vector of indices.

조회 수: 1 (최근 30일)
I'd like to write an anonymous function such as
f = @(X,m,A) sum(X(m:A))
where X is a vector,
m < numel(X),
and A is a subset of
[ m+1,numel(X) ],
which outputs a vector, the i'th element of which is sum(X(m:A(i)))
For example, let
X = [ 1:7 ], m = 4, A = [5:6]
I'd like my function f(X,m,A) to output
[ 4+5, 4+5+6 ]= [ 9 , 15 ]
Thanks for any help!!

채택된 답변

per isakson
per isakson 2015년 11월 7일
편집: per isakson 2015년 11월 7일
Try
>> f = @(X,ix1,ix2) arrayfun( @(ix) sum(X(ix1:ix)), ix2 );
>> f([1:7],4,[5:6])
ans =
9 15
>> f([1:7],4,[5,7])
ans =
9 22
>> f([1:7],4,[7,5])
ans =
22 9
it seems to do it!

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Function Creation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by