Matlab二維插值

2021-10-07 08:31:30 字數 1718 閱讀 2071

y=interp2(x,y,z,xi,yi,『method』);

method

nearest 最鄰近插值

linear(預設) 雙線性插值

cubic 雙三次插值

示例如下:

例:已知平板表面3*5的網格處的溫度值為

82    79    84

81 63 84

80 61 82

82 65 85

84 81 86

做出平板表面溫度分布曲面,在x,y方向上每隔0.2個單位進行插值,畫出插值後的圖形。

clc

;clear;

x=1:3;

y=1:5;

temps=[82 79 84

81 63 84

80 61 82

82 65 85

84 81 86]

[x,y]=meshgrid(x,y)

;figure(1)

;mesh(x,y,temps)

;xlabel(

'x')

;ylabel(

'y')

;figure(2)

;xi=1:0.2:3;

yi=1:0.2:5;

[xi,yi]=meshgrid(xi,yi)

;zi=interp2(x,y,temps,xi,yi,

'cubic');

mesh(xi,yi,zi)

;xlabel(

'x')

;ylabel(

'y')

;

z=griddata(x,y,z,xi,yi,『method』);

method如下:

nearest 不連續

linear(預設) 連續不可導

cubic 連續且可導v4

1、2、3、4影象光滑性遞增

**如下:

% 讀取影象資料,並賦值給a

figure(1)

;imshow(a)

;%顯示原圖

rand=rand(256,256,3)>0.8 | rand(256,256,3)

<0.2 ;

%隨機生成256*256*3的陣列,並確定其值大於0.8,後者小於0.2的位置資訊。

b=uint8(a)

.*uint8(rand)

;%選取部分資料,並賦值給b

%imshow(b)

;%顯示影象

t = b(:,:,1)

;%灰度圖

[m,n]=size(t)

;x1=1:m;

y1=1:n;

x2 = 1:.1:m;

y2 = 1:.1:n;

y2 = y2';

figure(2);

[x2,y2] = meshgrid(x2,y2);%生成網格矩陣

z = interp2(x1,y1,t,x2,y2,'nearest')

;%插值

imshow(z)

%插值後的圖

最後可以點一下左下角咩?有驚喜哦

MATLAB一維插值和二維插值

插值問題描述 已知 乙個函式上的若干點,但函式具體表示式未知,現在要利用已知的若干點求在其他點處的函式值,這個過程就是插值的過程.1.一維插值 一維插值就是給出y f x 上的點 x1,y1 x2,y2 xn,yn 由此求出y f x 在點xa處的值ya的值.實現一維插值使用interp1命令,使用...

MATLAB二維插值和三維插值

插值問題描述 已知 乙個函式上的若干點,但函式具體表示式未知,現在要利用已知的若干點求在其他點處的函式值,這個過程就是插值的過程.1.一維插值 一維插值就是給出y f x 上的點 x1,y1 x2,y2 xn,yn 由此求出y f x 在點xa處的值ya的值.實現一維插值使用interp1命令,使用...

Matlab中二維插值interp2函式的使用

問題 已知m n個節點 xi,yi,zij i 1,2,3.m,j 1,2,3.n,且x1對上述問題,matlab中提供了二維插值函式interp2,其基本格式為cz interp2 x,y,z,cx,cy,method 其中x和y是自變數。x和y的分量值必須是單調遞增的。x,y,z的值是已經知道的...