bsxfun (빨리 작동합니다!) 및 arrayfun (내가 이해할 수있는 한 느리게 예상되는 내부적으로 루프를 사용합니다)은 적어도 다른 용도로 사용됩니다. 수평. arrayfun to bsxfun 가능
가이 말을하는 데, 나는 주어진 배열의 모든 숫자를 정리해- 을 시도하고, 특정 인덱스
- 전에 숫자 인 (특정 위치에 번호를 추가, Y 말 위의 인덱스 위치에서) 위의 합계로.
% index array x = [ 1:6 ]; % value array y = [ 3 3 4 4 1 1 ]; % arrayfun version o2 = arrayfun(@(a) ... sum(y(1:(a-1)))+... y(a), ... x)
을하지만 큰 입력에 느린 것 같다 :
난 쉽게 예제 코드의 다음 조각이 수행 할 수 있습니다.
가능하면 bsxfun과 호환되는 버전으로 변환하는 것이 좋은 방법인지 궁금합니다.
P. y의 숫자는 위에 주어진대로 반복하지 않습니다. 이것은 단지 예일뿐입니다. [3 4 3 1 4 ...]
['cumsum'] (https://www.mathworks.com/help/matlab/ref/cumsum.html)을 보셨습니까? – beaker