matlab 三維畫圖總結
1.畫函式的三維圖,如:Z(X,Y)=2*X.*exp(-X.^2-Y.^2)+1;
close all; [X,Y]=meshgrid(-2:0.5:2,-2:0.5:2);%生成座標軸 Z=2*X.*exp(-X.^2-Y.^2)+1;%Z是X,Y的函式 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=0; num=num+1; subplot(2,3,num); plot3(X,Y,Z); axis([-3 3 -3 3 0 2]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(1)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); mesh(X,Y,Z); axis([-3 3 -3 3 0 2]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(2)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); meshc(X,Y,Z); axis([-3 3 -3 3 0 2]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(3)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); surf(X,Y,Z); axis([-3 3 -3 3 0 2]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(4)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); meshz(X,Y,Z); axis([-3 3 -3 3 0 2]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(5)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); surf(X,Y,Z); hold on; stem3(X,Y,Z,'r');%畫豎線 axis([-3 3 -3 3 0 2]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(6)');%標題
2.畫矩陣的三維圖
clc; clear all; close all; X=[0 1 2 3 4 5 6 7 8 9]; Y=[0 1 2 3 4 5 6 7 8 9]; for i=1:1:length(X) for j=1:1:length(Y) Z(i,j)=mod(i*j*rand(1),9); end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=0; num=num+1; subplot(2,3,num); plot3(X,Y,Z); axis([0 9 0 9 0 9]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(1)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); mesh(X,Y,Z); axis([0 9 0 9 0 9]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(2)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); meshc(X,Y,Z); axis([0 9 0 9 0 9]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(3)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); surf(X,Y,Z); axis([0 9 0 9 0 9]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(4)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); meshz(X,Y,Z); axis([0 9 0 9 0 9]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(5)');%標題 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% num=num+1; subplot(2,3,num); surf(X,Y,Z); hold on; stem3(X,Y,Z,'r');%畫豎線 axis([0 9 0 9 0 9]);%限定顯示的範圍 xlabel('x軸');%x軸座標 ylabel('y軸');%y軸座標 zlabel('z軸');%z軸座標 title('http://blog.csdn.net/nuptboyzhb/ figure(6)');%標題
3.畫矩陣的顏色深度圖
我自己編寫的一個函式:graycolor.m
%filename:graycolor.m
%鄭海波 2013-01-31
%http://blog.csdn.net/nuptboyzhb/
%原理:灰度影象的偽彩色處理
%值越大,顯示的顏色越藍,越小,顯示的顏色越紅!
%引數:newbuf必須使二維陣列或矩陣
function graycolor(newbuf);
min_n=min(min(newbuf));
max_n=max(max(newbuf));
newbuf=newbuf./(max_n-min_n)*255;
[M N]=size(newbuf);
for i=1:1:M
for j=1:1:N
R(i,j)=GrayColorR(newbuf(i,j));
G(i,j)=GrayColorG(newbuf(i,j));
B(i,j)=GrayColorB(newbuf(i,j));
end
end
img(1:1:M,1:1:N,1)=R(1:M,1:N);
img(1:1:M,1:1:N,2)=G(1:M,1:N);
img(1:1:M,1:1:N,3)=B(1:M,1:N);
imshow(uint8(img));
function r=GrayColorR(gray)
r=0;
if gray>=170
r=255;
end
if gray>=128&&gray<=170
r=255/42*(gray-128);
end
return;
function g=GrayColorG(gray)
g=0;
if gray>=84&&gray<=170
g=255;
end
if gray<=84
g=255/84*gray;
end
if gray>=170&&gray<=255
g=255/85*(255-gray);
end
return;
function b=GrayColorB(gray)
b=0;
if gray<=84
b=255;
end
if gray>=84&&gray<=128
b=255/44*(128-gray);
end
return;
函式的呼叫:
[X,Y]=meshgrid(-2:0.01:2,-2:0.01:2);%生成座標軸
Z=2*X.*exp(-X.^2-Y.^2)+1;%Z是X,Y的函式
graycolor(Z);
title('http://blog.csdn.net/nuptboyzhb/');%標題