如何在MATLAB中插入矩阵?

时间:2016-06-20 18:32:41

标签: matlab matrix interpolation

我有以下数据。第一行和第一列(突出显示)是两个参数,其中已生成其余元素。我希望将这个矩阵转换为50乘50的矩阵,在行和列之间插入数据。

我尝试按以下方式插入第二列,

x=[100 300 500 700];
y=[-20 -184 -315.2 -412];
z = linspace(x(1),x(4),50);
yi=interp1(x,y,z,'cubic'); 

但是,我的问题是,我无法弄清楚如何同时插入行并得到整个矩阵。

欢迎任何帮助/建议。

数据如下;

    30  60  90
100 -20 -45 -80.5
300 -184    -215    -225.4
500 -315.2  -254    -339
700 -412    -419    -488

enter image description here

1 个答案:

答案 0 :(得分:3)

您的数据是两个变量(f(x,y))的函数,因此您需要使用interp2而不是interp1

% Populate the data that you already have
rows =  [100, 300, 500 700];
cols = [30, 60, 90];

data = [-20      -45    -80.5
        -184    -215    -225.4
        -315.2  -254    -339
        -412    -419    -488];

% Interpolate this at 100 points in each direction
[newcols, newrows] = meshgrid(linspace(cols(1), cols(end)), ...
                              linspace(rows(1), rows(end)));

% Perform the bicubic interpolation
newdata = interp2(cols, rows, data, newcols, newrows, 'bicubic')