0

我有以下三个向量,我想插入NaNs其中B缺少A数据点的位置An。所以我Bn应该是[0.1;0.2;0.3;NaN;NaN;0.6;0.7]。我怎样才能得到Bn?谢谢。--杰基

A=[1;2;3;6;7]; An=[1;2;3;4;5;6;7]; B=[0.1;0.2;0.3;0.6;0.7];

4

1 回答 1

1

好的,首先,您不能将字符串“NaN”存储到矩阵的一个单元格中,它必须存储到一个单元格数组中。如果单元格数组是一个好的输出,下面的代码片段会为您提供解决方案。请让我知道您可能有任何问题或疑虑。

忘记斜体部分,谢谢 David K.

   % NaN solution for Jackie

   A=[1;2;3;6;7]; An=[1;2;3;4;5;6;7]; B=[0.1;0.2;0.3;0.6;0.7];

   len = max(length(A),length(An))
   Bn = zeros(len,1);

   k = 0; % adjust the index so that you don't call B outside of its size

   for i =1 :len
       ind= A(An(i)==A);
       if isempty(ind) ==1
       Bn(i) = nan(1,1)
       k = k+1;
       else
       Bn(i) = B(i-k)
       end
   end
于 2013-08-07T18:48:09.487 回答