我有以下三个向量,并且我想将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];
答案 0 :(得分: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