MATLAB plot——绘图前过滤数据

MATLAB plot- Filtering data before plotting

我有一个 90x2 矩阵 a 其中 a(:,1) 是 x,a(:,2) 是 y。

我只想绘制 y 大于 BOOM 的值。我怎样才能做到这一点?

目前我有

plot(a(:,1),a(:,2));

还有一点,我怎样才能显示完整的数字而不是 num*10^4

你可以这样做:

plot (a(a(:,2)>BOOM,1),a(a(:,2)>BOOM,2));
set(gca, 'YTickLabel', num2cell(get(gca, 'YTick')))

标准方法是用 find 制作面具。你会先这样做

mask = find(a(:,2) > BOOM);

掩码将是第二列超过 BOOM 阈值的索引位置列表。您可以使用它来 select 仅那些来自行排序

的条目
plot(a(mask,1), a(mask,2))

你也可以做一个逻辑掩码,它的工作原理大致相同,有时更方便。

关于显示你可以试试

format short