[問題] 求救~迴圈問題不得其解>"<已回收
我想了很久還是想不出來
只好來版上求救 請各位幫忙
假設我有一個 A : 2*n matrix 第一行是index 第二行是所對應的值
我現在想將 A 照著第二行的值由大到小排列 但其index也要跟著排列
ex A = 2 8 6 9 5 1 3 4
87 54 36 12 69 52 21 24
要變成
A' = 2 5 8 1 6 4 3 9
87 69 54 52 36 24 21 12
我已查過sort/sortrows好像都不能用
於是想要用迴圈來做 我的寫法如下:
for i = 1:length(A)
while (length(A)>0)
if A(2,i) == max(A(2,:))
g3 = [g3 A(1,i)]
A = [setdiff(A(1,:), A(1,i)); [(A(2,1:(i-1))) (A(2,(i+1):length(A) ))]]
end
if (length(A)==0)
break
end
end
end
以上這是不能跑的= =
我的想法是 把A第二行最大值及其index挑出來 然後剩下的就是新的A
一直重複此步驟 直到A的長度為0
但A重新整理後 長度變少了 以致於迴圈第一行會有問題
所以我後來又亂加while 還是搞不定><
希望有人聽得懂我的問題&答覆
先謝謝了^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.114.208
※ 編輯: Sovanna 來自: 140.113.114.208 (06/02 15:18)
推
06/02 15:21, , 1F
06/02 15:21, 1F
→
06/02 15:21, , 2F
06/02 15:21, 2F
→
06/02 15:21, , 3F
06/02 15:21, 3F
→
06/02 15:21, , 4F
06/02 15:21, 4F
推
06/02 18:33, , 5F
06/02 18:33, 5F
推
06/02 18:56, , 6F
06/02 18:56, 6F
推
06/02 19:00, , 7F
06/02 19:00, 7F
推
06/02 21:09, , 8F
06/02 21:09, 8F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章