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

Matlab中X区间数据集绘制及omitnan失效问题排查

Matlab问题解决:NaN参数失效与区间数据无插值绘制

一、解决omitnan参数未生效的问题

你的代码里mask = ~isnan(ddcr) & (cno >= i) & (cno <= i+step)已经过滤掉了ddcr中的NaN值,所以ddcr(mask)本身就不含NaN,此时std(..., 'omitnan')自然不会起作用。

如果ddpr中也存在NaN,需要把它的NaN判断加入mask:

mask = ~isnan(ddcr) & ~isnan(ddpr) & (cno >= i) & (cno <= i+step);

如果不需要同时过滤两个变量的NaN,也可以直接去掉mask里的~isnan(ddcr),让std和median的omitnan参数真正发挥作用:

mask = (cno >= i) & (cno <= i+step);
std_cr(j) = std(ddcr(mask), 'omitnan');
std_pr(j) = std(ddpr(mask), 'omitnan');
med_cr(j) = median(abs(ddcr(mask)), 'omitnan');
med_pr(j) = median(abs(ddpr(mask)), 'omitnan');

二、实现X区间数据的无插值绘制

要直接展示每个X区间(i到i+step)对应的Y值,不需要插值,最直观的方式是给每个区间画水平线段或矩形块。

方法1:绘制水平线段(推荐)

在循环内添加代码,每个区间画一条从i到i+step的水平线,Y值为当前计算的std_cr(j):

% 在j = j+1之前添加
plot([i, i+step], [std_cr(j), std_cr(j)], 'b-', 'LineWidth', 1.5);
hold on; % 保持画布,继续绘制后续区间

如果需要标记区间中点(和你之前计算的x_cno(j)对应),可以同时添加散点:

scatter(x_cno(j), std_cr(j), 20, 'k', 'filled');

方法2:绘制区间矩形块

如果需要更清晰展示区间范围,可用rectangle函数绘制每个区间的矩形:

rectangle('Position', [i, std_cr(j)-0.001, step, 0.002], 'FaceColor', 'b', 'EdgeColor', 'none');
hold on;

这里的Position参数是[x左, y下, 宽度, 高度],可根据你的Y值范围调整高度和偏移量。

完整修改后的代码片段

j = 1;
hold on; % 提前开启hold on,避免重复调用
for i = 50-range:step:50
    mask = (cno >= i) & (cno <= i+step); % 去掉ddcr的NaN过滤,让omitnan生效
    x_cno(j) = i + step/2;
    std_cr(j) = std(ddcr(mask), 'omitnan');
    std_pr(j) = std(ddpr(mask), 'omitnan');
    med_cr(j) = median(abs(ddcr(mask)), 'omitnan');
    med_pr(j) = median(abs(ddpr(mask)), 'omitnan');
    
    fprintf('%s %d %d %.3f %.3f %.3f %.3f\n',titleStr, i, i+step, std_cr(j), std_pr(j), med_cr(j), med_pr(j));
    
    % 绘制区间水平线段
    plot([i, i+step], [std_cr(j), std_cr(j)], 'b-', 'LineWidth', 1.5);
    % 绘制中点散点
    scatter(x_cno(j), std_cr(j), 20, 'k', 'filled');
    
    j = j + 1;
end
hold off;
xlabel('X区间');
ylabel('Y值');
title('区间数据无插值绘制');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:01:04