in the example of function accumarray, when use the diff ,it's so weird that the index of the val ,sometime the input value of x is Positive order ,but sometime is Reverse order,(u can run the code ,then pay attention to the value of y(the input value of x)),in the B3,u can get y(the input of diff ) like this
y = 103y = 104 106y = 102 101
it's so weird that 104 106 and 102 101,why it's not 101 102 ,it will lead to a wrong diff .
the code followed :
clc;clear all;val = [101 102 103 104 105 106];subs=[1 2; 1 2; 3 1; 4 1; 4 4; 4 1];B1 = accumarray(subs,val,[],@(x)sum(my(x)))B2 = accumarray(subs,val,[],@(x)sum(my(diff(x))))subs= [1 2; 3 1; 1 2; 4 4; 4 1; 4 1;];B3 = accumarray(subs,val,[],@(x)sum(my(x)))B4 = accumarray(subs,val,[],@(x)sum(my(diff(x))))function [ y] = my( x )y=xend
Best Answer