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

如何在Matlab中为已绘制向量的指定值设置不同标记?

解决Matlab中semiology函数指定位置标记错位的问题

你的问题出在:直接绘制x(1:10:1000)时,semiology会默认用这些子向量的索引(1到100)作为x轴坐标,而不是它们在原1000个元素中的实际位置(1,11,...,991),导致标记出现在错误位置。

解决步骤如下:

  1. 先绘制完整的原始曲线,开启绘图保持模式
  2. 提取目标点在原向量中的位置索引,用原位置作为x轴坐标,对应的值作为y轴坐标,叠加绘制标记

代码示例(默认x轴为元素索引的情况)

% 假设x是1000个元素的向量
semiology(x); % 绘制完整的1000个点的曲线
hold on; % 保持当前绘图窗口,允许叠加内容

% 提取目标点的原位置索引和对应值
target_idx = 1:10:1000;
target_x_values = x(target_idx);

% 用原位置作为x轴,绘制圆形标记(可自定义颜色、大小)
semiology(target_idx, target_x_values, 'o', 'MarkerSize', 8, 'Color', 'red');

hold off; % 关闭绘图保持

如果原绘图使用自定义x轴(比如时间向量)

如果你的semiology调用是基于自定义x轴(比如时间t),只需把target_idx替换为对应的x轴值即可:

t = linspace(0, 50, 1000); % 示例自定义x轴(1000个元素的时间向量)
semiology(t, x); % 绘制完整曲线
hold on;

target_idx = 1:10:1000;
semiology(t(target_idx), x(target_idx), 'o', 'MarkerSize', 7, 'Color', 'blue');

hold off;

这样标记就会精准对应到原曲线中1、11、21…991的位置,而不是前100个位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:22:16