我的代碼中有一個名為 p_fix 的變數。當PE>p 時需要保存該變數的值。但是我這樣做的方式是,每次PE>p被尊重時,這個變數的值都會改變,我怎么能在PE>p時只保存一次它的值并且不再改變這個變數(p_fix)的值?
for n = 1:size(t,1)
if n>=4
X = [Ia(n-1,1) Ia(n-2,1) ; Ia(n-2,1) Ia(n-3,1)];
future = [Ia(n,1) ; Ia(n-1,1)];
C = X\future;
Ia_future(n,1) = C(1,1)*Ia(n,1) C(2,1)*Ia(n-1,1);
PE(n,1)=Ia(n,1) Ia_future(n,1);
p(n,1)=(1 0.2)*max(PE(n-1,1));
if PE(n-1,1)>p(n,1)
p_fix = p(n,1);
end
end
end
uj5u.com熱心網友回復:
您可以:
在回圈之前,初始化
p_fix為一個空陣列,只有在它為空時才設定它:if isempty(p_fix) && PE(n-1,1)>p(n,1) p_fix = p(n,1); end或者使用第二個布爾變數,例如
done,跟蹤您是否設定了其他變數。將其初始化false為回圈之前,然后:if ~done && PE(n-1,1)>p(n,1) p_fix = p(n,1); done = true; end
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/392346.html
