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

Matlab同图绘制三组压力数据报错问题咨询

解决MATLAB绘制多组单长度数据时的报错问题

问题描述

需要以循环计数器数组sample为X轴,在同一图中绘制压力估计值P_est、两个压力传感器数据P_mes和P_mes_new三组数据。仅绘制前两组时代码正常运行:

plot(grapheP,sample,P_est,'--b',sample,P_mes,'.r');
lgd_P=legend(grapheP, 'P_est','P_mes', 'Location','northwest');
lgd_P.FontSize=Fontsize;

添加第三组数据后触发错误,尝试的代码:

plot(grapheP,sample,P_est,'--b',sample,P_mes,'.r', sample, P_mes_new);
lgd_P=legend(grapheP, 'P_est','P_mes', 'P_mes_new', 'Location','northwest');
lgd_P.FontSize=Fontsize;

错误信息:

Error using plot
Data must be a single input of y-values or one or more pairs of x- and y-values.

Error in UI (line 364)
    plot(grapheP,sample,P_est,sample,P_mes, sample, P_mes_new);

已确认所有数组长度均为1,去掉标记符后仍报错,需解决该问题。

问题原因

当所有数组长度为1,且指定了坐标轴对象grapheP时,MATLAB的plot函数对多组数据的参数解析出现歧义,无法正确识别每组(x,y)的配对关系。

解决方法

方法1:分多次调用plot并启用hold模式

通过开启坐标轴的保留模式,分别绘制每组数据,语法更清晰且不易出错:

% 开启坐标轴保留模式,确保新绘制内容不会覆盖原有图形
hold(grapheP, 'on');

% 分别绘制三组数据,可自定义每组的样式
plot(grapheP, sample, P_est, '--b');
plot(grapheP, sample, P_mes, '.r');
plot(grapheP, sample, P_mes_new, '-g'); % 示例为绿色实线

% 设置图例和字体大小
lgd_P=legend(grapheP, 'P_est','P_mes', 'P_mes_new', 'Location','northwest');
lgd_P.FontSize=Fontsize;

% 绘制完成后可关闭保留模式(可选操作)
hold(grapheP, 'off');

方法2:显式指定第三组数据的样式

为第三组数据补充样式参数,让MATLAB能正确解析每组(x,y,样式)的参数块:

plot(grapheP, sample, P_est, '--b', ...
     sample, P_mes, '.r', ...
     sample, P_mes_new, '-k'); % 显式指定样式,示例为黑色实线

lgd_P=legend(grapheP, 'P_est','P_mes', 'P_mes_new', 'Location','northwest');
lgd_P.FontSize=Fontsize;

内容的提问来源于stack exchange,提问作者Gerson CHADI JUNIOR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:57:21