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
相关产品推荐
相关产品推荐

