Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Octave 带倍频程3.6.2的interp2产生NA_Octave - Fatal编程技术网

Octave 带倍频程3.6.2的interp2产生NA

Octave 带倍频程3.6.2的interp2产生NA,octave,Octave,矩阵DFZ将参数映射到(条带与YA)网格上。 我想把它插值到(YStrip vs.YStrip)网格上。下面的代码返回了一个似乎正常的答案: Strip = [-2.0650, -3.2540, -4.4145, -5.4490, -6.3575, -7.2380, -8.1185, -8.9995, -9.8805, -10.7615, -11.6420, -12.5225, -13.4035, -14.1520, -14.7675, -15.3830]; YA = [-1.103, -2.5

矩阵DFZ将参数映射到(条带与YA)网格上。 我想把它插值到(YStrip vs.YStrip)网格上。下面的代码返回了一个似乎正常的答案:

Strip = [-2.0650, -3.2540, -4.4145, -5.4490, -6.3575, -7.2380, -8.1185, -8.9995, -9.8805, -10.7615, -11.6420, -12.5225, -13.4035, -14.1520, -14.7675, -15.3830];
YA = [-1.103, -2.586,   -3.724, -4.981, -5.997, -7.134, -8.271, -9.407, -10.545,    -11.682,    -12.818,    -13.955,    -15.69];
%
DFZ    = [   1184.31,  1526.26, 762.50, 562.81, 359.21,     250.49,     180.48,  110.95,     73.79,     48.42,   30.62,  23.56,     4.03;
              746.64,  1310.41, 952.00, 649.05, 462.94,     307.50,     209.61,  127.17,     81.29,   52.38,     32.17,  24.46,     5.87;
              471.84,   977.42, 946.58, 774.77, 494.69,   321.74,   214.50,  127.93,     80.13,     50.67,   30.56,  22.53,     5.27;
              305.12,   610.90, 657.14, 730.46, 510.09,     302.22,     198.04,  115.46,     70.76,     43.97,   25.98,  18.45,     3.78;
              241.27,   470.64, 469.33, 625.56, 598.09,     369.79,     225.75,  128.23,   76.21,   46.15,   26.48,  18.55,     3.66;
              203.92,   393.14, 373.35, 484.21, 590.13,     487.48,     289.38,  156.48,   90.26,   52.59,   29.20,  20.16,     4.07;
              172.49,   329.92, 304.57, 370.21, 476.58,     542.99,     403.83,  202.30,    112.69,   63.06,     33.62,  22.00,     4.71;
              145.30,   277.10, 251.22, 295.10, 357.11,     468.45,     518.32,  287.29,    148.14,   79.56,     40.13,  24.65,     5.10;
              122.14,   233.34, 208.52, 240.30, 275.85,     344.08,     503.98,  410.61,    210.72,  105.57,     50.03,  28.81,     5.52;
              102.56,   196.41, 172.98, 196.53, 218.95,     252.62,     375.33,  470.42,    320.77,  148.75,     66.14,  35.36,   6.22;
               84.73,   162.98, 141.44, 158.99, 173.43,     190.78,     257.28,  377.15,    436.28,  228.33,     91.72,  45.02,     7.26;
               69.70,   134.30, 115.17, 128.64, 138.52,     147.27,     187.27,  247.97,    395.45,  359.38,    144.13,  63.30,   9.31;
               56.51,   108.89,  92.50, 102.78, 109.86,     114.13,   139.44,  170.85,  255.10,  387.73,    255.91, 100.24,  12.92;
               30.85,   59.730,  50.24,  55.57,  59.00,      60.25,    71.91,  84.427,  115.63,  201.32,    224.63, 109.67,  12.29;
               23.27,   45.200,  37.68,  41.61,  44.03,      44.35,      52.19,  59.597,     77.19,  126.73,  200.29, 149.32,  15.32;
               16.60,   32.364,  26.74,  29.44,  31.11,      30.98,      36.03,  40.255,     50.19,     74.54,  135.16, 173.17,  21.94];
当我使用线性插值尝试相同的代码时,我得到了NA的矩阵


关于为什么线性插值不起作用的任何提示?

给interp2的
x
y
应该是严格单调的,并且递增的

例如,随着
x
y

[x, y] = meshgrid(YA,Strip);
[z, w] = meshgrid(Strip,Strip);
DFZ_Strip = interp2(x,y,DFZ,z,w,"spline")
得到

x_ = [-1.5 -2.5];
y_ = [-1 -2 -3];
[x__, y__] = meshgrid(x_, y_);
z__ = x__ + y__;

xi_ = x_;
yi_ = x_;

[xi__, yi__] = meshgrid(xi_, yi_);
# zi__ = interp2(x__, y__, z__, xi__, yi__, "spline")
zi__ = interp2(x__, y__, z__, xi__, yi__, "linear")
解决方法是对
x
y
进行排序,并相应地对
z
进行重新排序:

zi__ =

    -3    NA
    -4    NA
然后得到正确的结果:

x_ = [-1.5 -2.5];
y_ = [-1 -2 -3];
[x__, y__] = meshgrid(x_, y_);
z__ = x__ + y__;
# sort x and y and reorder z accordingly
[x_sorted_, idx_x_] = sort(x_);
[y_sorted_, idx_y_] = sort(y_);
x__ = x__(idx_y_, idx_x_);
y__ = y__(idx_y_, idx_x_);
z__ = z__(idx_y_, idx_x_);

xi_ = x_;
yi_ = x_;

[xi__, yi__] = meshgrid(xi_, yi_);
# zi__ = interp2(x__, y__, z__, xi__, yi__, "spline")
zi__ = interp2(x__, y__, z__, xi__, yi__, "linear")

八度音阶4.6.2尚不存在。你应该修改标题。一个更小的例子和更多的标准变量(interp2文档中的变量)会更好。
zi__ =

  -3  -4
  -4  -5