matlab中调用interp函数时出现使用 griddedInterpolant 网格矢量未定义与给定值匹配的点网格时怎么处理。

matlab中调用interp1函数时出现使用 griddedInterpolant 网格矢量未定义与给定值匹配的点网格时怎么处理?求大神解答

在这里插入代码片
```drv_pwr_dmd_simu=drv_ctrl_pwr_dmd_simu
 prb.W{1}=interp1(sch_cycle(:,1),drv_pwr_dmd_simu,0:prb.N/prb.Ts);
prb.W{2}= interp1(sch_cycle(:,1),drv_pwr_dmd_simu,0:prb.N/prb.Ts);%mode3pdmd;  
 prb.W{3}= interp1(sch_cycle(:,1),drv_pwr_dmd_simu,0:prb.N/prb.Ts);%mode4pdmd;  
 prb.W{4}= interp1(sch_cycle(:,1),sch_cycle(:,2),0:prb.N/prb.Ts);
 出错提示:
 错误使用 griddedInterpolant
网格矢量未定义与给定值匹配的点网格。出错 interp1 (line 183)
        F = griddedInterpolant(X,V,method);![出错提示](https://img-blog.csdnimg.cn/20191213221315471.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dVRmlnaHRpbmc=,size_16,color_FFFFFF,t_70)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
interp1函数matlab的一种插函数,主要用于在给定的X数据集上进行插。该函数可以通过各种不同的插方法来实现,如线性插、二次插、三次插等。如果要用C语言来实现matlabinterp1函数,可以采用以下步骤: 首先,需要定义一个结构体,用于存储所需的数据。该结构体应该包含以下内容: int n; // 数据个数 double *x; // 数据的x坐标 double *y; // 数据的y坐标 int method; // 插方法(0表示线性插,1表示二次插,2表示三次插) 接下来,需要定义对应的插函数。根据插方法的不同,插函数也有所不同。我们以线性插为例,定义一个名为interp1_linear的函数,该函数的参数包括原始数据和待插的坐标: double interp1_linear(struct interp1_data *data, double xi) { int i; double yi; // 寻找左端 for (i = 0; i < data->n - 1; i++) { if (xi <= data->x[i+1]) break; } // 线性插 yi = data->y[i] + (data->y[i+1] - data->y[i]) / (data->x[i+1] - data->x[i]) * (xi - data->x[i]); return yi; } 最后,在主函数调用函数,传入相应的参数,即可实现matlabinterp1函数的功能: struct interp1_data data = {n, x, y, method}; double xi, yi; // 待插的坐标 xi = 2.5; // 调用函数 yi = interp1_linear(&data, xi); 通过这样的方式,就可以在C语言实现matlabinterp1函数的功能了。需要注意的是,该程序只实现了线性插,如果要实现其他插方法,需要修改插函数。同,为了提高程序的效率,也可以采用其他的数据结构和算法来实现插函数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值