繁体   English   中英

在MATLAB中将2D数组插值到单点

[英]Interpolate 2D Array to single point in MATLAB

我在3个不同温度无法线性获得的IV曲线(单调递增函数。在第一个象限中考虑正二次函数。 附有照片 )有3 张图 即,在25℃下获得一种,在125℃下获得一种,在150℃下获得一种。

我要制作的是一个内插2D数组以填充其他温度。 我当前的构建MeshGrid类型数组的方法如下:

H = 5;
W = 6;
[Wmat,Hmat] = meshgrid(1:W,1:H);
X = [1:W; 1:W];
Y = [ones(1,W); H*ones(1,W)];
Z = [vecsatIE25; vecsatIE125];
img = griddata(X,Y,Z,Wmat,Hmat,'linear')

这可以构建一个6x6数组,然后我可以从其中索引一行,然后从该1D数组进行插值。

这真的不是我想要的。

例如,行是temps = 25C,50C,75C,100C,125C和150C。 因此,当我的温度实际为57.5摄氏度时,我必须选择50摄氏度的温度。 然后,我可以对我的I进行插值以获得我的V输出。 再次举例来说,我的I为113.2A,实际上我可以插值并获得113.2A的V。

当我拍摄所附照片并数字化绘图信息时,我得到了一个点阵列。 因此,我的目标是输入任何温度和任何电流以通过插值获得电压。 插值的类型并不重要,只要它能产生合理的值-我就不希望使用最近邻插值,线性或类似方法。 如果可以选择,稍后我将尝试其他类型的插值(三次,线性)。

我不确定如何才能理想地做到这一点。 meshgrid数组不需要存在。 我只需要1值。

谢谢。

如果我正确理解了这个问题,我认为您正在寻找的是interp2

Vq = interp2(X,Y,V,Xq,Yq)其中Vq是所需的V,Xq和Yq是温度和电流,而X,Y和V是温度,电流和电压的输入数组。

作为一种选择,您可以在“线性”,“最近”,“三次”,“ makima”和“样条”之间切换方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM