看板 MATLAB 關於我們 聯絡資訊
一個應該是很簡單的問題,只是我不知道怎麼處理~~= =" 以下是我程式的簡化版 clear n=4; A=zeros(n); k=zeros(n,1); A(1,2)=1; A(1,3)=1; A(2,1)=1; A(2,3)=1; A(3,1)=1; A(3,2)=1; A(1,4)=1; A(4,1)=1; k(1,1)=3; k(2,1)=2; k(3,1)=2; k(4,1)=1; r=5/16; for j=1:4; p(j,1)=(k(j,1))/(sum(k(:,1))); end for j=1:4; if r > p(j,1) c=min(j) %<--------問題在這邊!! end end ============== 當我 r > p(j,1)的迴圈裏面 我想找出最小的j,意思是p(j,1)=[0.375,0.25,0.25,0.125] r=5/16=0.31... 所以r會大於p(2,1),p(3,1),p(4,1) 我希望要得 j 值是 r 遇到第一個小於 r 的 p(j,1)的 j !! 在這個例子就是,我希望他能讀出 j=2 請問有什麼方法可以解決??? =========== 或是 for j=1:4; if r > p(j,1) c=min(j) %<------如何一成功執行到這步驟就停止???? end end =========== 這是我想到的狀況~~ -- ◢) 伴隨著五彩光圈,蝴蝶所到之處,惡鬼全成了碎塊, ◥◣◤ ◢◥█)) 蝴蝶優雅飛去,碎塊才來得及落下◥) ◥) ◎ ◢█ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.66.158 ※ 編輯: icrtstyle 來自: 140.119.66.158 (11/20 18:13)
olliekr:break? 11/20 20:05
CBET:find(r > p, 1) 11/20 20:23
icrtstyle:break可以 11/20 20:26
icrtstyle:請問CBET大,我不太明白你方法的意思,我試過p(:,1)跟 11/20 20:31
icrtstyle:p(j,1)這兩個,結果都不是我要的結果~~ 11/20 20:32
CBET:那一整塊 for 迴圈用 find(r > p, 1) 就可以了 11/20 21:00
icrtstyle:了解,感謝~~ 11/20 21:14