Matlab - 从矩阵中找出缺少的时间,并用值插入缺少的时间

时间:2013-03-02 06:38:22

标签: matlab

我有一系列的时间,并在各种矩阵中返回,我们称之为b c。它们都是x乘2,第1列是以秒为单位的时间,第2列返回。虽然所有的回报都超过了一系列时间间隔,例如15s 30s 45s等,但问题并不是所有的矩阵都有所有时间桶,所以虽然a可能是30乘2,但b可能只是28乘2。因为它失踪说时间45秒并返回。我想通过每个矩阵和我错过了一个时间桶,我想插入一个零返回的桶 - 我很高兴创建一个控件30×1矩阵,所有时间需要交叉引用

1 个答案:

答案 0 :(得分:1)

您可以使用ismember找到这些缺失的位置,因此如果a是控制向量而b是缺失的数据向量ind=find(ismember(a,b)==0);,则会为您提供a中遗漏了b

例如:

a=1:10;
b=[1:2 4:5 7:10];
ind=find(ismember(a,b)==0);

ind =
     3     6

为了b只在

的正确位置添加零
for n=1:numel(ind)
    b=[b(1:ind(n)-1) , 0 , b(ind(n):end)];
end

b =
 1     2     0     4     5     0     7     8     9    10