Matlab代码不起作用,试图过滤2个数组

时间:2012-01-11 21:42:24

标签: arrays matlab filter

如何在图表中根据matlab中的数组顺序绘制数组?

示例:x = [6,10,12,20]点1变为6:1,点3 = 12:3,例如,即使我从此数组中删除了一些元素,我想保留相同的顺序

我在这里尝试做的一个例子就是删除所有下面的值,同时保持顺序,因为它代表秒的时间(这是来自视频处理代码):

m=mean(amp);
for i=totalframes
    if (amp(i) >= m)
        time(i)=i/framerate;
    end
end
amp(amp >= m) = [];
time(time > 0) = [];
figure, plot(time,amp) %% plot my curve

P.s:时间和放大器数组是由我的代码中的Zeros创建的。

由于

2 个答案:

答案 0 :(得分:2)

如果您要删除平均值m以下的所有值,请执行以下操作:

inds=(amp<m)  %% find where amp is lower than m
amp(inds) = [];  %% remove corresponding amp
time(inds) = []; %% remove corresponding time
figure, plot(time,amp)  

答案 1 :(得分:1)

x的设计从[6; 10; 12; 20]更改为[1 6; 2 10; 3 12; 4 20]并遍历此数组,删除您不想要的行,然后您将获得带索引的结果数组。