finding the mean and reducing the value

1 Ansicht (letzte 30 Tage)
johnson saldanha
johnson saldanha am 19 Nov. 2018
Bearbeitet: Andrei Bobrov am 19 Nov. 2018
suppose i have a matrix x=[ 0.01 0.02 0.034 0.045 0.054 0.06]
and y=[1 1 1 2 1 1]
i want the output to be x1=[0.021 0.045 0.057] and y1=[1 2 1]
the number of elements in x and y are the same. whenever a repeating digit is encountered in the matrix y, the mean of the values in x for the number of reapeted values should be calculated and shown in x1 and the repeated values should be reduced to a single value and shown in y1

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 19 Nov. 2018
Bearbeitet: Andrei Bobrov am 19 Nov. 2018
y = [1 1 1 2 1 1]';
x = [ 0.01 0.02 0.034 0.045 0.054 0.06]';
ii = [true;diff(y(:)) ~= 0];
x1 = accumarray(cumsum(ii),x,[],@mean);
y1 = y(ii);

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by