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
我有一个 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