我发现interp2和interpn在MATLAB中给出了不同的结果,尽管我使用了相同的方法。请试试这两个样品。
test1=interp2([1,2],[6,7],[0,14317;25217,45817],1.1107,6.1348,'linear');
test2=interpn([1,2],[6,7],[0,14317;25217,45817],1.1107,6.1348,'linear');
第一个产生5078,第二个产生4815(与手工计算的相同(
通过查看函数,我发现interp2使用makegridinterp,而interpn使用gridedInterpolant。有人能说出其中的区别吗?谢谢
我需要一段时间才能意识到:interp2用于网格格式,而interpn用于ngrid格式。因此,x和y应该在interp2中切换!(interp1相同(test3等于test2。test3=interp2([6,7],[1,2],[0,14317;25217,45817],6.1348,1.1107,'linear');