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

基于ColC列以0.1间隔重采样Matlab Table并插值其他列的方法求助

基于Matlab Table的非均匀列重采样与插值方案

resample函数主要用于均匀采样率转换(比如信号处理中的采样率调整)或时间序列对象的重采样,并不适配你这种基于自定义非均匀自变量(ColC)的插值场景,直接用interp1函数更合适,以下是完整解决方案:

步骤与代码示例

% 1. 从Table中提取数据
x = rawData.ColC;       % 作为插值基准的ColC列(自变量)
y_colA = rawData.ColA;  % 需要插值的ColA列(因变量)
y_colB = rawData.ColB;  % 需要插值的ColB列(因变量)

% 2. 生成0.1间隔的目标采样点,覆盖原始ColC的取值范围
x_new = min(x):0.1:max(x);

% 3. 执行插值(默认线性插值,可替换为'spline'/'pchip'等)
% 'extrap'参数允许对超出原始ColC范围的点进行外插,不需要可删除
colA_new = interp1(x, y_colA, x_new, 'linear', 'extrap');
colB_new = interp1(x, y_colB, x_new, 'linear', 'extrap');

% 4. 组合成新的Table
resampled_data = table(x_new, colA_new, colB_new, ...
    'VariableNames', {'ColC', 'ColA', 'ColB'});

关键说明

  • 插值方法可选:linear(线性插值,适合连续数据)、spline(样条插值,平滑性更好)、pchip(保形分段三次插值,避免过冲),根据数据特性选择即可
  • 若原始ColC存在重复值,interp1会报错,需先通过unique函数去重(同步处理对应ColA/ColB的数据)
  • 若不需要外插,删除代码中的'extrap'参数,超出原始范围的采样点会返回NaN

内容的提问来源于stack exchange,提问作者brent.reynolds

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 04:43:23