[問題] 迴圈中多組答案選出Max
各位版上前輩好,
我想要請教幾個問題希望大家可以幫助我 > <
---
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
12/07 13:39, 1F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章