sort matrix by absolute value

25 次查看(过去 30 天)
Poorva
Poorva 2021-3-29
评论: Poorva 2021-3-30
How do I sort a matrix by absolute value and display its original value with +,- sign?

采纳的回答

DGM
DGM 2021-3-29
编辑:DGM 2021-3-29
Consider the case for a vector:
A=randi(19,[10 1])-10
[~,idx]=sort(abs(A))
Asorted=A(idx)
For other arrays, you'll have to decide how exactly you want to sort it, and do the indexing accordingly.
  4 个评论
Poorva
Poorva 2021-3-30
Thank you ....I got it now and the code is working well.
Poorva
Poorva 2021-3-30
[y, idx2] = sort(D,2,'descend');
sx = size(C);
index = sub2ind(sx, repmat((1:sx(1)).', 1, sx(2)), idx2);
y2 = C(index);
res=array2table(y2)

请先登录,再进行评论。

更多回答(1 个)

Steven Lord
Steven Lord 2021-3-30
Specify the 'ComparisonMethod' name-value pair argument.
rng default
A = randi([-10 10], 5, 5)
A = 5×5
7 -8 -7 -8 3 9 -5 10 -2 -10 -8 1 10 9 7 9 10 0 6 9 3 10 6 10 4
[values, locations] = sort(A(:), 'ComparisonMethod', 'abs');
[values.'; locations.']
ans = 2×25
0 1 -2 3 3 4 -5 6 6 7 7 -7 -8 -8 -8 9 9 9 9 10 10 10 10 10 -10 14 8 17 5 21 25 7 15 19 1 23 11 3 6 16 2 4 18 24 9 10 12 13 20 22
  2 个评论
DGM
DGM 2021-3-30
Do you know about when that option was introduced? I'm guessing it was some time around 2018, but release notes are vague and I only know it's not in R2015b.
Poorva
Poorva 2021-3-30
thank you steven ....my code is working.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by