how to make cumsum in ascending order of values

2 Ansichten (letzte 30 Tage)
Vishal Sharma
Vishal Sharma am 19 Jun. 2017
Beantwortet: Image Analyst am 19 Jun. 2017
I have a matrix
A = [1 2 4 7;
2 3 1 6;
4 5 6 15]
. The last column is sum of rows
I want to make another column on right side displaying cumulative sums of last column in ascending order of the forth column (row sums). The result of last column shall be as follows:--
[22 28 15]
So, final matrix will become
[1 2 4 7 22;
2 3 1 6 28;
4 5 6 15 15].

Akzeptierte Antwort

Image Analyst
Image Analyst am 19 Jun. 2017
I'm not quite following how your description gives you the result, but I followed your written directions and got this:
A = [1 2 4 7; ...
2 3 1 6; ...
4 5 6 15]
% Sort last column in ascending order:
rightColumn = sort(A(:, end), 'ascend')
% Get the cumulative sums of that
c = cumsum(rightColumn);
% Append onto right edge of A as a new column.
A = [A, c]

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by