-1
這第一個矩陣表1包含標準化的值。我需要在這個矩陣上執行一些操作,我必須獲得如表2所示的第二個矩陣。在MATLAB中使用排序命令的矩陣操作
表2的對角線元素應該通過對每個值給予排名(有序值)來獲得。這意味着最高元素被給予第5等級和接下來的第4等第3等等。
通過對從4開始的每個值給予等級而獲得的剩餘表格元素,因爲只剩下4個元素。因爲我們已經給出了對角元素的等級。零應該保持原樣。假設以table1爲矩陣,table2爲B矩陣。
OPERATION1:For diagonal elements
B(1,1)=5(first largest element)
B(2,2)=1(5th largest element)
B(3,3)=4(4th largest element)
B(4,4)=2(2nd largest element)
B(5,5)=3(3rd largest element)
OPERATION2:For remaining elements
B(1,2)=3(2nd largest element)
B(1,3)=4(1st largest element)
B(1,4)=1(4th largest element)
B(1,5)=2(3rd largest element)
等等..
Table1:
1.0000 0.2727 0.3182 0.0455 0.2727
0.2727 0.2727 0 0 0
0.3182 0 0.4545 0.1818 0
0.0455 0 0.1818 0.2727 0.0909
0.2727 0 0 0.0909 0.3636
Source code:
for i = 1:5
for j = 1:5
if i == j
[~, ii] = sort(diag(y));
[~, jj] = sort(ii);
table2 = diag(jj);
elseif y(i,j)==0
table2(i,j)=0;
else
[~, ij] = sort(y);
[~, ij] = sort(ij);
table2 = ij;
end
end
end
I got this output for above code
5 0 0 0 0
0 1 0 0 0
0 0 4 0 0
0 0 0 2 0
0 0 0 0 3
但我需要下面的輸出。表2:
5 3 4 1 2
4 1 0 0 0
4 0 4 3 0
2 0 4 2 3
4 0 0 3 3
雅得到了Bentoy先生,使其工作正確。 – prash2