[問題] 迴圈中多組答案選出Max

看板MATLAB作者 (Kevin)時間9年前 (2015/12/07 10:29), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/3 (看更多)
各位版上前輩好, 我想要請教幾個問題希望大家可以幫助我 > < --- q=0.9, a=0.9, c0=0.2, c1=0.01, X=2^(1/2) for b=0:0.1:1 for D=0.1:0.1:1 if q - b > 0 & q - c1 > 0 & q*(q + b) - 2*c0 > 0 S1 = (q*(a+b)-2*c0)^2/(16*(q-c1)) F2 = (q^2*(2*D + a - b)*(a*q - 2*c0 + b*q))/(16*(c1 - q)^2) A2 = ((X*q*(q*(a + b)-2*c0))^2)/((4*(q-c1))^3) else S1 = 0 F2 = 0 A2 = 0 end end Y = [S1 F2 A2] Z = max(Y) fprintf('Max = \n',Z) end --- 總而言之我希望調控b跟D分別跑出一組一組的S1, F2, A2, 並且在每一組內找出這三個中最大的值,顯示對應的代號 所以應該會有10 x 9 = 90組Max的值, 可能像是 Max = S1 Max = S1 Max = S1 Max = S1 Max = F2 Max = F2 Max = A2 Max = A2 Max = A2 Max = A2 Max = A2 Max = A2 ... 目前想請大家幫的忙有幾個: 1. 我無法在每一個b - D組合得到一個Max值 跑完之後他會先出現很多組S1, F2, A2, 然後在最後一組之後出現: Y = [xxx yyy zzz] Z = yyy (假設是最大值) 而不是每一筆資料都是一個Max值 2. 我無法得到代號,而是數值 我知道很直覺的我的矩陣裡面放的是S1, F2, A2計算出來的值, 但我應該要怎麼寫才可以讓Max出來的是代號呢? 3. 我無法儲存最後得到的Max值 假設順利得到了90組Max值,我要怎麼儲存他? 因為目前好像就是會在Matlab出現90行的文字, 但我希望可以把它儲存為 (b1, D1, Max1) (b2, D1, Max2) (b3, D1, Max3) ... 再請大家幫助我了,謝謝各位 > < -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.250.42 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1449455383.A.FB8.html

12/07 13:39, , 1F
S1 F2 A2又剛好只是b D的二次式,應該可以手算才是
12/07 13:39, 1F
文章代碼(AID): #1MPEyN-u (MATLAB)
文章代碼(AID): #1MPEyN-u (MATLAB)