日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab绘制三维图形

發(fā)布時(shí)間:2023/12/10 循环神经网络 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab绘制三维图形 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文地址:matlab制三維圖形 作者:hotinko1

三維曲線
plot3
函數(shù)與plot函數(shù)用法十分相似,其調(diào)用格式為:
plot3(x1,y1,z1,
選項(xiàng)1,x2,y2,z2,選項(xiàng)2,…,xn,yn,zn,選項(xiàng)n)
其中每一組x,y,z組成一組曲線的坐標(biāo)參數(shù),選項(xiàng)的定義和plot函數(shù)相同。當(dāng)x,y,z是同維向量時(shí),則x,y,z 對應(yīng)元素構(gòu)成一條三維曲線。當(dāng)x,y,z是同維矩陣時(shí),則以x,y,z對應(yīng)列元素繪制三維曲線,曲線條數(shù)等于矩陣列數(shù)。
? 繪制三維曲線。
程序如下:
t=0:pi/100:20*pi;
x=sin(t);
y=cos(t);
z=t.*sin(t).*cos(t);
plot3(x,y,z);
title('Line in 3-D Space');
xlabel('X');ylabel('Y');zlabel('Z');

三維曲面
1
.產(chǎn)生三維數(shù)據(jù)
MATLAB中,利用meshgrid函數(shù)產(chǎn)生平面區(qū)域內(nèi)的網(wǎng)格坐標(biāo)矩陣。其格式為:
x=a:d1:b; y=c:d2:d;
[X,Y]=meshgrid(x,y);
語句執(zhí)行后,矩陣X的每一行都是向量x,行數(shù)等于向量y的元素的個數(shù),矩陣Y的每一列都是向量y,列數(shù)等于向量x的元素的個數(shù)。

2.繪制三維曲面的函數(shù)
surf
函數(shù)和mesh函數(shù)的調(diào)用格式為:
mesh(x,y,z,c)
:畫網(wǎng)格曲面,將數(shù)據(jù)點(diǎn)在空間中描出,并連成網(wǎng)格。?
surf(x,y,z,c)
:畫完整曲面,將數(shù)據(jù)點(diǎn)所表示曲面畫出。
一般情況下,x,y,z是維數(shù)相同的矩陣。x,y是網(wǎng)格坐標(biāo)矩陣,z是網(wǎng)格點(diǎn)上的高度矩陣,c用于指定在不同高度下的顏色范圍。
?
?繪制三維曲面圖z=sin(x+sin(y))-x/10。
程序如下:
??? [x,y]=meshgrid(0:0.25:4*pi); %
[0,4pi]×[0,4pi]區(qū)域生成網(wǎng)格坐標(biāo)
??? z=sin(x+sin(y))-x/10;
??? mesh(x,y,z);
??? axis([0 4*pi 0 4*pi -2.5 1]);
此外,還有帶等高線的三維網(wǎng)格曲面函數(shù)meshc和帶底座的三維網(wǎng)格曲面函數(shù)meshz。其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面在z軸方向的等高線,meshz還在xy平面上繪制曲面的底座。
?
? xy平面內(nèi)選擇區(qū)域[-8,8]×[-8,8],繪制4種三維曲面圖。
程序如下:
[x,y]=meshgrid(-8:0.5:8);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
subplot(2,2,1);
mesh(x,y,z);
title('mesh(x,y,z)')
subplot(2,2,2);
meshc(x,y,z);
title('meshc(x,y,z)')
subplot(2,2,3);
meshz(x,y,z)
title('meshz(x,y,z)')
subplot(2,2,4);
surf(x,y,z);
title('surf(x,y,z)')
3
.標(biāo)準(zhǔn)三維曲面
sphere
函數(shù)的調(diào)用格式為:
[x,y,z]=sphere(n)
generates three (N+1)-by-(N+1)?? matrices so that SURF(X,Y,Z) produces a unit sphere.
cylinder
函數(shù)的調(diào)用格式為:
[x,y,z]= cylinder(R,n)
,其中r為圓周半徑,n為組成圓周的點(diǎn)數(shù)。
MATLAB
還有一個peaks 函數(shù),稱為多峰函數(shù),常用于三維曲面的演示。
?
? 繪制標(biāo)準(zhǔn)三維曲面圖形。
程序如下:
t=0:pi/20:2*pi;
[x,y,z]= cylinder(2+sin(t),30);
subplot(2,2,1);
surf(x,y,z);
subplot(2,2,2);
[x,y,z]=sphere;
surf(x,y,z);
subplot(2,1,2);
[x,y,z]=peaks(30);
surf(x,y,z);


其他三維圖形

在介紹二維圖形時(shí),曾提到條形圖、桿圖、餅圖和填充圖等特殊圖形,它們還可以以三維形式出現(xiàn),使用的函數(shù)分別是bar3stem3pie3 fill3。
bar3
函數(shù)繪制三維條形圖,常用格式為:
bar3(y)
bar3(x,y)
stem3
函數(shù)繪制離散序列數(shù)據(jù)的三維桿圖,常用格式為:
stem3(z)
stem3(x,y,z)
pie3
函數(shù)繪制三維餅圖,常用格式為:
pie3(x)
fill3
函數(shù)等效于三維函數(shù)fill,可在三維空間內(nèi)繪制出填充過的多邊形,常用格式為:
fill3(x,y,z,c)
?
? 繪制三維圖形:
(1)
繪制魔方陣的三維條形圖。
(2)
以三維桿圖形式繪制曲線y=2sin(x)。
(3)
已知x=[2347,1827,2043,3025],繪制餅圖。
(4)
用隨機(jī)的頂點(diǎn)坐標(biāo)值畫出五個黃色三角形。
程序如下:
subplot(2,2,1);
bar3(magic(4))
subplot(2,2,2);
y=2*sin(0:pi/10:2*pi);
stem3(y);
subplot(2,2,3);
pie3([2347,1827,2043,3025]);
subplot(2,2,4);
fill3(rand(3,5),rand(3,5),rand(3,5), 'y' )

?? 繪制多峰函數(shù)的瀑布圖和等高線圖。
程序如下:
subplot(1,2,1);
[X,Y,Z]=peaks(30);
waterfall(X,Y,Z)
xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');
subplot(1,2,2);
contour3(X,Y,Z,12,'k');???? %
其中12代表高度的等級數(shù)
xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');

?

圖形修飾處理

視點(diǎn)處理
MATLAB
提供了設(shè)置視點(diǎn)的函數(shù)view,其調(diào)用格式為:
view(az,el)
其中az為方位角,el為仰角,它們均以度為單位。系統(tǒng)缺省的視點(diǎn)定義為方位角-37.5°,仰角30°。
? 從不同視點(diǎn)繪制多峰函數(shù)曲面。
???
程序如下:
??? subplot(2,2,1);mesh(peaks);
??? view(-37.5,30);????????? %
指定子圖1的視點(diǎn)
??? title('azimuth=-37.5,elevation=30')
??? subplot(2,2,2);mesh(peaks);
??? view(0,90);??????????? %
指定子圖2的視點(diǎn)
??? title('azimuth=0,elevation=90')
??? subplot(2,2,3);mesh(peaks);
??? view(90,0);???????????? %
指定子圖3的視點(diǎn)
??? title('azimuth=90,elevation=0')
??? subplot(2,2,4);mesh(peaks);
??? view(-7,-10);??????????? %
指定子圖4的視點(diǎn)
??? title('azimuth=-7,elevation=-10')

色彩處理
1
.顏色的向量表示
MATLAB
除用字符表示顏色外,還可以用含有3個元素的向量表示顏色。向量元素在[0,1]范圍取值,3個元素分別表示紅、綠、藍(lán)3種顏色的相對亮度,稱為RGB三元組。
2
.色圖
色圖(Color map)MATLAB系統(tǒng)引入的概念。在MATLAB中,每個圖形窗口只能有一個色圖。色圖是m×3 的數(shù)值矩陣,它的每一行是RGB三元組。色圖矩陣可以人為地生成,也可以調(diào)用MATLAB提供的函數(shù)來定義色圖矩陣。
3
.三維表面圖形的著色
三維表面圖實(shí)際上就是在網(wǎng)格圖的每一個網(wǎng)格片上涂上顏色。surf函數(shù)用缺省的著色方式對網(wǎng)格片著色。除此之外,還可以用shading命令來改變著色方式。
shading faceted
命令將每個網(wǎng)格片用其高度對應(yīng)的顏色進(jìn)行著色,但網(wǎng)格線仍保留著,其shading flat命令將每個網(wǎng)格片用同一個顏色進(jìn)行著色,且網(wǎng)格線也用相應(yīng)的顏色,從而使得圖形表面顯得更加光滑。
shading interp
命令在網(wǎng)格片內(nèi)采用顏色插值處理,得出的表面圖顯得最光滑。
顏色是黑色。這是系統(tǒng)的缺省著色方式

?? 3種圖形著色方式的效果展示。
程序如下:
[x,y,z]=sphere(20);
colormap(copper);
subplot(1,3,1);
surf(x,y,z);
axis equal
subplot(1,3,2);
surf(x,y,z);shading flat;
axis equal
subplot(1,3,3);
surf(x,y,z);shading interp;
axis equal
??
光照處理
MATLAB
提供了燈光設(shè)置的函數(shù),其調(diào)用格式為:
light('Color',
選項(xiàng)1,'Style',選項(xiàng)2,'Position',選項(xiàng)3)

光照處理后的球面。
程序如下:
[x,y,z]=sphere(20);
subplot(1,2,1);
surf(x,y,z);axis equal;
light('Posi',[0,1,1]);
shading interp;
hold on;
plot3(0,1,1,'p');text(0,1,1,' light');
subplot(1,2,2);
surf(x,y,z);axis equal;
light('Posi',[1,0,1]);
shading interp;
hold on;
plot3(1,0,1,'p');text(1,0,1,' light');
???
圖形的裁剪處理
4-22? 繪制三維曲面圖,并進(jìn)行插值著色處理,裁掉圖中xy都小于0部分。
程序如下:
[x,y]=meshgrid(-5:0.1:5);
z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);
surf(x,y,z);shading interp;
pause???????????????? %
程序暫停
i=find(x<=0&y<=0);
z1=z;z1(i)=NaN;
surf(x,y,z1);shading interp;
為了展示裁剪效果,第一個曲面繪制完成后暫停,然后顯示裁剪后的曲面。

圖像處理與動畫制作
圖像處理
1
imreadimwrite函數(shù)
imread
imwrite函數(shù)分別用于將圖像文件讀入MATLAB工作空間,以及將圖像數(shù)據(jù)和色圖數(shù)據(jù)一起寫入一定格式的圖像文件。MATLAB支持多種圖像文件格式,如.bmp、.jpg.jpeg、.tif等。
2
imageimagesc函數(shù)
這兩個函數(shù)用于圖像顯示。為了保證圖像的顯示效果,一般還應(yīng)使用colormap函數(shù)設(shè)置圖像色圖。
5-23? 有一圖像文件flower.jpg,在圖形窗口顯示該圖像。
程序如下:
[x,cmap]=imread('flower.jpg');? %
讀取圖像的數(shù)據(jù)陣和色圖陣
image(x);colormap(cmap);
axis image off??? %
保持寬高比并取消坐標(biāo)軸

動畫制作
MATLAB
提供getframemovieinmovie函數(shù)進(jìn)行動畫制作。
1
getframe函數(shù)
getframe
函數(shù)可截取一幅畫面信息(稱為動畫中的一幀),一幅畫面信息形成一個很大的列向量。顯然,保存n幅圖面就需一個大矩陣。

2moviein函數(shù)
moviein(n)
函數(shù)用來建立一個足夠大的n列矩陣。該矩陣用來保存n幅畫面的數(shù)據(jù),以備播放。之所以要事先建立一個大矩陣,是為了提高程序運(yùn)行速度。
3
movie函數(shù)
movie(m,n)
函數(shù)播放由矩陣m所定義的畫面n次,缺省時(shí)播放一次。
?? 繪制了peaks函數(shù)曲面并且將它繞z軸旋轉(zhuǎn)。
程序如下
[X,Y,Z]=peaks(30);
surf(X,Y,Z)
axis([-3,3,-3,3,-10,10])
axis off;
shading interp;
colormap(hot);
m=moviein(20);??????????? %
建立一個20列大矩陣
for i=1:20
view(-37.5+24*(i-1),30)????? %
改變視點(diǎn)
m(:,i)=getframe;??????????? %
將圖形保存到m矩陣
end
movie(m,2);???????????????? %
播放畫面2

轉(zhuǎn)載于:https://www.cnblogs.com/AI-Algorithms/p/3672126.html

總結(jié)

以上是生活随笔為你收集整理的matlab绘制三维图形的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。