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的值是已經知道的...