Ordering a column with respect to another column.

1 次查看(过去 30 天)
Hi, I have a matrix with 2 columns and N (=50) rows. The columns have positive real numbers. I intend to order the elements of column 1 keeping column 2 fixed so that column 1 and column 2 become oppositely arranged. In other words, keeping column 2 fixed, re-order column 1 so that
corr(column 1, column 2, 'type', 'Kendall') = -1
Any ideas on how I can proceed with this?
Many Thanks!

采纳的回答

lvn
lvn 2014-4-1
编辑:lvn 2014-4-1
This should do it:
A=rand(50,2);
[~,J]=sort(A(:,2),'descend');
A(J,1)=sort(A(:,1),'ascend');
corr(A(:,1), A(:,2) , 'type', 'Kendall')
  2 个评论
Trambak
Trambak 2014-4-1
Thanks! In this example, you are re ordering both the columns of A. The idea is to keep the arrangement of column 2 unchanged and re arrange column 1 only so that the rank correlation between the re arranged column 1 and the original column 2 is -1.
For example, A = [1 3; 2 5; 3 7; 4 5; 5 10]. I re-arrange only the first column of A without touching the 2nd column of A. I get
B = [5 3; 3 5; 2 7; 4 5; 1 10]
Trambak
Trambak 2014-4-1
Thanks a lot. This works perfectly. I am actually going to try and use this iteratively on an N x 3 matrix and arrange the jth column so that it is oppositely arranged to the sum of the other 2, 1<= j <= 3.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by