You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MATLAB的hold on命令设置条件以选择性绘制谐波曲线

MATLAB谐波曲线选择性绘制解决方案

要实现不修改初始频率数组、仅绘制指定频率余弦曲线的需求,核心是通过索引筛选出目标频率对应的曲线数据,再针对性绘制。以下是修改后的代码及说明:

修改后的代码

clear,clc
%% Data 
x = 0:1:100; 
a = 5.76; 
omega = 0.8:0.1:11.1; 
k = omega ./ a; 

[X,K,OMEGA] = meshgrid(x,k,omega);
y = cos(OMEGA - K .* X);

% -------------------------- 关键筛选部分 --------------------------
% 定义需要绘制的目标频率(可根据需求灵活修改)
target_omega = 0.8:1:10.8;

% 考虑浮点精度问题,用ismembertol匹配目标频率在原数组中的索引
% 如果是整数步长无精度问题,也可以用 idx = ismember(omega, target_omega);
idx = ismembertol(omega, target_omega, 1e-6);

% 仅绘制目标频率对应的曲线
figure(1);
plot(x, y(:, idx)); 
title('y(x) - 仅显示指定频率曲线');
grid on;

关键说明

  • 灵活调整绘制条件:只需修改target_omega的定义即可切换绘制的频率范围,比如要绘制5到10之间步长0.5的频率,直接改成target_omega = 5:0.5:10;;如果要筛选满足特定条件的频率(比如大于3且小于8),可以用逻辑索引:idx = omega > 3 & omega < 8;
  • 浮点精度处理:由于MATLAB中浮点数组可能存在微小精度误差,用ismembertol比ismember更可靠,第三个参数是容错阈值,可根据需求调整。
  • 保留原数据完整性:初始的omega数组和y矩阵完全未修改,后续仍可基于完整数据做其他分析。

内容的提问来源于stack exchange,提问作者Varga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:46:01