gpt4 book ai didi

matlab - 为什么这个 Matlab 错误与实际测试不一致?

转载 作者:行者123 更新时间:2023-12-03 07:40:56 25 4
gpt4 key购买 nike

当我运行 interp2 并使用 MESHGRID 定义我的数组时,它不会产生错误,而使用 NDGRID 定义时会产生错误。但是,这没有任何意义,因为错误(如下所示)声称需要 NDGRID 格式。你可以自己尝试一下,代码在下面。这种不一致的原因是什么?如果有一种方法可以检测格式,为什么 interp2 不只处理两种格式?我正在运行 Matlab 2012b。

这是错误(由测试 2 触发):

Error using griddedInterpolant

Data is in MESHGRID format, NDGRID format is required.
Convert your data as follows:
X = X'; Y = Y'; V = V'; F = griddedInterpolant(X,Y,V)

测试 1 - 没有错误
clear
x = linspace(0,2*pi,10);
y = linspace(0,2*pi,10);
[X1,Y1] = meshgrid(x,y);
x = linspace(0,2*pi,4);
y = linspace(0,2*pi,4);
[X2,Y2] = meshgrid(x,y);
u = sin(X1).*cos(Y1);
a = interp2(X1,Y1,u,X2,Y2)

测试 2 - 触发错误
clear
x = linspace(0,2*pi,10);
y = linspace(0,2*pi,10);
[X1,Y1] = ndgrid(x,y);
x = linspace(0,2*pi,4);
y = linspace(0,2*pi,4);
[X2,Y2] = ndgrid(x,y);
u = sin(X1).*cos(Y1);
a = interp2(X1,Y1,u,X2,Y2)

最佳答案

因为 interp2 , 同时使用 griddedInterpolant在内部,预计 meshgridgriddedInterpolant 之前转置的格式输入(显示在帮助中)称呼。 meshgrid不验证输入数组,而 griddedInterpolant显然是。

由于大多数工具箱功能,包括 interp2是 Matlab 函数本身,只需输入 edit interp2 就可以很容易地看到发生了什么。或在调试时进入函数内部。

关于matlab - 为什么这个 Matlab 错误与实际测试不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16800073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com