只在变量中存储一个固定值一次

Store a fixed value in the variable only once

我的代码中有一个名为 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

您可以:

  1. 在循环之前,初始化p_fix为空数组,只有空数组才设置:

    if isempty(p_fix) && PE(n-1,1)>p(n,1)
       p_fix = p(n,1);
    end
    
  2. 或使用第二个布尔变量,例如 done,它会跟踪您是否设置了其他变量。在循环之前初始化为false,然后:

    if ~done && PE(n-1,1)>p(n,1)
       p_fix = p(n,1);
       done = true;
    end