减去代码运行一段时间后但在处理时间

时间:2016-02-04 12:42:34

标签: arrays matlab math signal-processing

我有一个大小的数组(比如说10):例如

A = [.80 .87 .79 .75 .49 .61 .63 .79 .67 .88 .40] 

是我添加到数组后得到的

B = [.47 .05 .10 .29 .23 .14 .21 .29 .02 .10] 

带有一组数字

C = [.02 .18 .27 .14 .07 .08 .10 .17 .05 .027] 

按顺序排列每个循环中的一些随机元素。

for i=1:10
  A = B(randomly selected array elements) + C(i);
end

但是我必须在一些迭代后减去连续迭代中添加的数字(例如:C(1) = 0.02的值和选择的随机数组位置是([1 3 5 6 8 10])我应该减去数组中的0.02数组([1 3 5 6 8 10])的{​​{1}}的位置,假设我正在进行B次迭代,定义的减法应该在第4次迭代后开始。

1 个答案:

答案 0 :(得分:0)

indices = zeros (1,5) ; considering fixed number of indices in each iteration
for i=1:10
  ind_   = index of randomly selected items from array B;
  indices  = [indices ; ind_] ;
  A = B(ind_) + C(i);
  if (i == 4)
      A(indices(i-3,:)) = A(indices(i-3,:)) - C(i-3) ;
  end
end