作者kevinjean (Kevin)
看板MATLAB
标题[问题] 回圈中多组答案选出Max
时间Mon Dec 7 10:29:41 2015
各位版上前辈好,
我想要请教几个问题希望大家可以帮助我 > <
---
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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1449455383.A.FB8.html
1F:→ sunev: S1 F2 A2又刚好只是b D的二次式,应该可以手算才是 12/07 13:39