Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在二维向量场或三维空间中的二维向量之间插值_Matlab_Vector_Interpolation_Matlab Figure_Linear Interpolation - Fatal编程技术网

Matlab 在二维向量场或三维空间中的二维向量之间插值

Matlab 在二维向量场或三维空间中的二维向量之间插值,matlab,vector,interpolation,matlab-figure,linear-interpolation,Matlab,Vector,Interpolation,Matlab Figure,Linear Interpolation,我的程序创建二维矢量图纸,在三维空间中为风数据建模。我想知道如何在这些二维图纸之间进行插值。X和Y值不会变化,因为它们对应于保持静态的横向/纵向值。向量的W分量设置为0,只留下向量的U/V分量在Z范围内进行插值,该Z范围对应于两个二维向量表之间的Z距离 我已经阅读了interp3,但我不确定它是否能与我正在尝试的工作配合。如果你能帮上忙,我将不胜感激,谢谢 注意:我删除了一个与我之前问过的问题类似的问题,因为我认为我的问题过于复杂,从而排除了其他人帮助回答这个问题的可能性 谢谢你的帮助,如果我能

我的程序创建二维矢量图纸,在三维空间中为风数据建模。我想知道如何在这些二维图纸之间进行插值。X和Y值不会变化,因为它们对应于保持静态的横向/纵向值。向量的W分量设置为0,只留下向量的U/V分量在Z范围内进行插值,该Z范围对应于两个二维向量表之间的Z距离

我已经阅读了interp3,但我不确定它是否能与我正在尝试的工作配合。如果你能帮上忙,我将不胜感激,谢谢

注意:我删除了一个与我之前问过的问题类似的问题,因为我认为我的问题过于复杂,从而排除了其他人帮助回答这个问题的可能性


谢谢你的帮助,如果我能提供更多的信息,请告诉我

这是我的代码,可以在两张Z图纸之间对任意数量的不同桩号进行插值。我相信它可以重写,以便在interp1()函数中包含所有Z表。希望这能为你指明正确的方向

zLevels = 5;   %number of interpolated points between z50 and z75
nStation = 100;     %number of (lat,long) pairs to interpolate
for i = 1:nStation %for nStation different (lat, long) pairs generate interp. values
        % generate zQuery points between z50 and z75 for each station
        zQuery = ((1:zLevels)/zLevels)*range([z50mb_vec(i) z75mb_vec(i)]) + z75mb_vec(i);
        % use interp1 to interpolate about the Z axis for U component
        U(i,1:zLevels) = interp1([z50mb_vec(i) z75mb_vec(i)],[UwindVec50mb(i) UwindVec75mb(i)],zQuery);
        % and for V component
        V(i,1:zLevels) = interp1([z50mb_vec(i) z75mb_vec(i)],[VwindVec50mb(i) VwindVec75mb(i)],zQuery);
end

% defining some color codes for each zLevel, otherwise the plot is a mess
% of colors
colorcode = ['r' 'g' 'b' 'm' 'c' 'r' 'g' 'b' 'm' 'c' 'r'];
for j = 1:nStation
    for i = 1:zLevels
    quiver3(lat_value(j), long_value(j), zQuery(i), U(j,i), V(j,i), 0, colorcode(i));
    hold on;
    end
end
生成的绘图(z50数据为teal,z75为红色,否则为插值表):

您是否可以为正在打印的数据提供.mat文件以及用于生成/打印数据的代码?对于我之前的幼稚评论,我深表歉意。除了代码之外,我还可以创建一个.mat文件,我认为如果您注释掉read_grib和mex file unpack部分,您将能够完成所有操作,但是我不熟悉“.mat”文件,所以我不确定!让我知道**感谢您无意中教我有关“.mat”文件的内容:)通过Dropbox下载:从您发布的图像上看,插值的最终结果和绘图看起来像是一个箭头的波形墙,上面显示的彩色表格表示该波形墙的横截面,其值为Z?如果这是正确的,那么可能interp3不是您要寻找的函数,相反,interp2或interp1可能就足够了,因为您的lat和long值始终是固定的。然后,对于每个长/纬度坐标,您应该只在一维(Z)内插任意多个查询点(相当于添加的横截面)。我想这正是我要找的人。我必须努力克服它,但我觉得这太棒了。感谢您抽出时间来查看并提供帮助!非常非常感谢!!!只有一个问题Falimond,N值代表什么?应该是zLevels。我最初写的时候用的是N,但忘了替换它。