Kat*_*tyB 2 matlab interpolation
我使用interp1来提交一些数据:
temp = 4 + (30-4).*rand(365,10);
depth = 1:10;
dz = 0.5; %define new depth interval
bthD = min(depth):dz:max(depth); %new depth vector
for i = 1:length(temp);
i_temp(i,:) = interp1(depth,temp(i,:),bthD);
end
Run Code Online (Sandbox Code Playgroud)
在这里,我通过将测量值从1 m增量插值到0.5 m增量来增加测量值的分辨率.这段代码工作正常,它给了我正在寻找的矩阵.但是,当我将其应用于我的实际数据时,运行需要很长时间,主要是因为我正在运行一个运行不同单元格的附加循环.有没有办法在不使用循环的情况下实现上述内容,换句话说,是否有更快的方法?
将for循环替换为:
i_temp = interp1(depth,temp',bthD)';
Run Code Online (Sandbox Code Playgroud)
如果你改变temp定义的方式,你可以摆脱转置,如果你可以i_temp成为19x365阵列而不是365x19.
顺便说一下,interp1 的文档很清楚,你可以传入一个数组作为第二个参数.