matlab三維畫圖學習 三次插值


一些語句

size(a,x);

xis=size(xi,2);  %獲取矩陣xi的列數
xis=size(xi,1);  %獲取矩陣xi的行數

round函數 四舍五入,在繪制三維圖形時如果數據比較大,可以通過以下方法把數據按應有比例減小  (我自己理解的,有錯請指正)

x=round(x'./100+1);  %這部分使數據減小,便於作圖處理等
y=round(y'./100+1);

matlab中提供的插值函數 griddata ,其基本格式為 cz=griddata(x,y,z,cx,cy,'method');

其中,參數method有以下四個可以選擇:

‘nearest’ :最鄰近點插值

‘linear’ :線性插值

‘cubic’: 三次插值

‘V4’:matlab中所提供的的插值方法

基本格式中 x,y,z均是n為向量,代表數據點的坐標,向量cx cy是給定的網格點的橫坐標和縱坐標,cz是矩陣,其行數和列數分別等於 cx 和 cy 的維數。(所以前面有提到round函數的用處,不然cz矩陣可能會特別特別大)

%手寫一下代碼
clear
clc

%讀入數據
load textx.txt
load texty.txt
load textz.txt

%數據進行處理
textx=round(textx'./100+1);
texty=round(texty'./100+1);
textz=textz';

zi=zeros(max_x,max_y); %這里max_x max_y我理解的是textx texty中最大的值(初學者)
for i=1:len
     zi(x(i),y(i))=z(i);
end

xi=0:step:lx; %step為步長  lx為自己設定的x軸長度,要大於等於max_x ,ly同理
yi=0:step:ly
zi=griddata(x,y,z,xi,yi,'V4');%繪制三維曲面圖
subplot(1,2,1);
mesh(xi,yi,zi); %繪制地形圖

%這是最基本的結構,其他內容可以在此基礎上添加

 

 

輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM