




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Matlab與Simulink仿真學(xué)習(xí)心得班級(jí):07610學(xué)號(hào):072016姓名:呂天雄一Matlab學(xué)習(xí)心得體會(huì)與編程實(shí)踐<1>學(xué)習(xí)Matlab的心得體會(huì)真正開始接觸Matlab是大二上就開始了,到現(xiàn)在已經(jīng)一年多了,在此之間,Matlab的確為我提供了很多便利。Matlab的確不愧成為是草稿紙上的語言。我們不必去為很簡(jiǎn)單的顯示效果圖形去找一些什么其他軟件或者研究比較復(fù)雜的計(jì)算機(jī)圖形學(xué),一個(gè)plot或者別的函數(shù)往往就可以得到很滿意的效果。其實(shí)最初開始學(xué)習(xí)matlab的時(shí)候感覺這個(gè)東西和C沒什么兩樣,但是后來具體到一些東西,比如信號(hào)處理和數(shù)學(xué)建模上以后才感覺到使用matlab編寫程序去驗(yàn)證結(jié)果比C要節(jié)省很多時(shí)間,而且matlab寫東西基本都是按照自己的思路平鋪直敘很少去考慮什么函數(shù)的嵌套調(diào)用或者指針等等很頭疼的東西。關(guān)于matlab的學(xué)習(xí),我感覺其實(shí)百度和matlab自帶的help基本能夠解決絕大數(shù)問題,而且一些比較好的論壇比如都會(huì)為你產(chǎn)生很大的幫助,關(guān)鍵是在于多動(dòng)手實(shí)踐,多思考。但是matlab畢竟只是一個(gè)工具,原理和一些基本的編程素質(zhì)還是必須有的,否則matlab最多也只能是驗(yàn)證一些別人的東西而已,根本幫不上什么忙的。<2>遇到的一些問題的思考方式與解決辦法最開始用matlab的時(shí)候是在大物實(shí)驗(yàn),實(shí)驗(yàn)要求去根據(jù)測(cè)量得到的數(shù)據(jù)作出圖。但是手動(dòng)用鉛筆去畫確實(shí)很麻煩,所以用matlab確實(shí)可以省去很大的麻煩。但是第一次遇到問的時(shí)候是有關(guān)極化坐標(biāo)下的曲線擬合。首先是一個(gè)物理實(shí)驗(yàn)的問題;在做一個(gè)關(guān)于光的偏振的實(shí)驗(yàn)的時(shí)候,最后的結(jié)果要在一個(gè)極化坐標(biāo)下顯示出來;因?yàn)閿?shù)據(jù)是離散的,所以顯示出來的圖像是一個(gè)折來折去的一個(gè)東東;然后很自然的想法是對(duì)這個(gè)曲線進(jìn)行插值處理。但是極化坐標(biāo)下MATLAB并未提供插值處理的函數(shù),interpl這個(gè)函數(shù)只能在笛卡爾坐標(biāo)系,也就是直角坐標(biāo)系下使用。然后就想到把極坐標(biāo)的數(shù)據(jù)轉(zhuǎn)換的直角坐標(biāo)系下,pol2cart可以實(shí)現(xiàn)這個(gè)想法,但是隨后而來,也就是最后導(dǎo)致整個(gè)問題失敗的關(guān)鍵也在這里。pol2cart以后產(chǎn)生的一串?dāng)?shù)據(jù)中出現(xiàn)了重復(fù)的數(shù)據(jù),那么interpl這個(gè)東西也就無能為力了,因?yàn)閕nterpl不能處理一串?dāng)?shù)據(jù)中有重復(fù)出現(xiàn)的情況。最后的處理辦法是把這些數(shù)據(jù)c接下來這個(gè)問題就有點(diǎn)超過我的范圍了,可能會(huì)有點(diǎn)敘述不清楚。問題可以概要為:人臉網(wǎng)格插值。這是一個(gè)用三角形網(wǎng)格表示的一個(gè)人臉模型。需要通過插值使其變得光滑,當(dāng)然問題的復(fù)雜之處在于,插值會(huì)改變?cè)镜木W(wǎng)格結(jié)構(gòu)。對(duì)于這個(gè)問題許多人都給出了解決的辦法,當(dāng)然是一些關(guān)于人臉識(shí)別技術(shù)和運(yùn)動(dòng)圖像處理的范疇之內(nèi)的。主要有兩種,第一種是face—Is算法。這種算法是基于RBF(徑向插值函數(shù))和loop細(xì)分原則的一種算法,當(dāng)然其精確程度比較差點(diǎn)。但是速度挺好。原理是:基于網(wǎng)格上的點(diǎn),產(chǎn)生出頂點(diǎn)的迭代函數(shù),從而產(chǎn)生出新的定點(diǎn),進(jìn)行細(xì)化。然后進(jìn)行插值。也就是引進(jìn)新的頂點(diǎn)。分為兩個(gè)過程內(nèi)部插值和邊緣插值。具體可以去看蘭州大學(xué)信息工程學(xué)院的學(xué)報(bào)。第二種也就是基本的老辦法RBF。首先解釋一下什么叫做徑向插值徑向基函數(shù)主要是考慮多維空間的數(shù)據(jù)插值問題,徑向基函數(shù)在三維圖形的變形中常常被采用,用其來變分三維人臉的時(shí)候還應(yīng)結(jié)合人臉的固有特征。確定該方法來實(shí)現(xiàn)三維人臉變形是可行的,但要構(gòu)造好的基函數(shù),以及解這些高維方程的解仍是難點(diǎn)。插值方法:假設(shè)大多數(shù)人臉的形狀都可以由一個(gè)拓?fù)湓妥兓脕?,那么,通過調(diào)整一個(gè)一般模型的構(gòu)造參數(shù)可以建立不同的面部模型。但是,這種參數(shù)模型僅僅局限于那些構(gòu)造參數(shù)已知的情況,并且對(duì)特定人臉參數(shù)的調(diào)整非常困難。在離散數(shù)據(jù)的多變量插值問題方面,徑向基函數(shù)(radialbasisfunction,RBF)插值方法是一個(gè)行之有效的工具,所以也適用于類似人臉這樣高維曲面的近似或平滑插值?,F(xiàn)有的許多方法使用了基于RBF的插值技術(shù),將一般人臉網(wǎng)格變化到特定人臉的形狀。這種方法的優(yōu)點(diǎn)在于:(1)通過插值可以得到丟失的數(shù)據(jù)點(diǎn),所以源網(wǎng)格和目標(biāo)網(wǎng)格不需要相同數(shù)目的結(jié)點(diǎn);(2)如果選擇了合適的匹配點(diǎn),數(shù)學(xué)上可以保證能夠?qū)⒃淳W(wǎng)格變形到目標(biāo)網(wǎng)格。當(dāng)然我也不是很懂,只是理解了部分。這種方法的關(guān)鍵是找到一個(gè)很好的核函數(shù)來計(jì)算出新的頂點(diǎn)。最后問題解決的方式是查著了一些圖書館的學(xué)報(bào)。然后而且在網(wǎng)上找到了部分代碼。然后做出來的。這是我校大四一個(gè)同學(xué)畢設(shè)中的一個(gè)東西。其實(shí)這個(gè)事件最好的解決辦法是在3D-MAX中,不過因?yàn)闆]能找到MATLAB與3D-MAX是怎么接口的,所以作罷了。
第三次遇到的問題是我在數(shù)學(xué)建模課上遇到的一個(gè)關(guān)于矩陣LU分解的問題:Matlab作出的結(jié)果和手算的結(jié)果竟然不一樣。"I0一"£1]£1一個(gè)矩陣A=11經(jīng)過三角分解為L(zhǎng)=1£1U=01-丄£因?yàn)?/£為一個(gè)極大數(shù)則1—1/£可以看成一1/s;設(shè)£=0.000000000000000000000001%10的負(fù)24次方>>Pornailong>>snssns=0.000000000000000L0000000000000001,QOQOnOOOOOOfiOOO 0從而L*U=12111021,0000e+241則最后一位1沒有了變成了0其中L=121| 1.0000e-241?□■i.aaaae+243Matlab程序?yàn)閑pusino=0.000000000000000000000001;U=[epusino1;0-1/epusino];L=[10;1/epusino1];L*Uans=0.0000000000000001.0000000000000001.0000000000000000而直接用lu函數(shù)對(duì)矩陣A分解的結(jié)果為A=[epusino1;11]A=0.00001.00001.00001.0000>>[L,U]=lu(A)L=0.0000 1.00001.00000U=1101我們老師當(dāng)時(shí)的解釋是這是由于我們所用matlab是破解版的緣故,破解版的計(jì)算精度沒正版的高所以導(dǎo)致運(yùn)算結(jié)果的錯(cuò)誤,后來我看了一些LU這個(gè)函數(shù)的help文檔psychologicallylowertriangularmatrix"(i.e.aproductoflower triangularandpermutationmatrices)inL翻譯過來是L是一個(gè)心理上的下三角矩陣,其實(shí)是下三角矩陣和置換矩陣也就是最后的結(jié)論。P*A=L*U.。由此可見這并不是什么精度的問題導(dǎo)致的結(jié)果只是LU分解的矩陣意義和書本上的不同而已。以下是我自己寫的一些程序的代碼1:網(wǎng)絡(luò)隨機(jī)拓?fù)鋱D目的是要生成一個(gè)度數(shù)隨機(jī)、權(quán)值隨機(jī)的拓?fù)鋱D。首先的理解是利用鄰接矩陣,先隨機(jī)生成一個(gè)矩陣,該矩陣為一個(gè)對(duì)稱矩陣。然后畫出這個(gè)矩陣就行了。
%產(chǎn)生數(shù)組A用來存放表示兩點(diǎn)之間權(quán)值的矩陣A,也就是臨接矩陣,那么兩點(diǎn)之間權(quán)值不為零元素的個(gè)數(shù)即為該點(diǎn)的度數(shù)DEF=5;%設(shè)定一個(gè)東東方便改變隨機(jī)點(diǎn)的個(gè)數(shù)A=rand(DEF,DEF);%產(chǎn)生DEF*DEF的隨機(jī)矩陣fori=1:DEFA(ij)=0%將對(duì)角線上的數(shù)置為0endA=10*A;A=floor(A);%向下去整fori=1:DEFforj=1:iA(M)=A(ij)%將A矩陣變?yōu)橐粋€(gè)上三角或者下三角矩陣endendx=100*rand(1,DEF);y=100*rand(1,DEF);%產(chǎn)生10個(gè)隨機(jī)的點(diǎn)plot(x,y,'r+');fori=1:DEFa=find(A(i,:)>0)%將A矩陣每行大于0的數(shù)的在該行的地址找出來放在a中forj=1:length(a)c=num2str(A(i,j));%將A中的權(quán)值轉(zhuǎn)化為字符型ifc~='0'%不顯示為0的值因?yàn)锳矩陣為零代表兩點(diǎn)不相連text((x(i)+x(j))/2,(y(i)+y(j))/2,c,'Fontsize',18);%將權(quán)值顯示在兩點(diǎn)連線中間endholdon;line([x(i)x(a(j))],[y(i)y(a(j))]);%連線endendtitled隨機(jī)拓?fù)鋱D');e=num2str(DEF);legend(e);%左上角顯示節(jié)點(diǎn)的個(gè)數(shù)form=1:DEFA(m,m)=m;f=num2str(A(m,m));holdon;text((x(m)+x(m))/2,(y(m)+y(m))/2,f,'Fontsize',18);%將權(quán)值顯示在兩點(diǎn)連線中間end接下來是一個(gè)在信息安全課上寫的一個(gè)關(guān)于256色圖分層的程序,一副圖像有m*n個(gè)像素然后每個(gè)像素是一個(gè)8bit的二進(jìn)制數(shù)據(jù)換算為十進(jìn)制是0-255之間。要做的就是把每bit的信息提取出來。I=imread('bupt副本.bmp');%讀入源圖像I=double(I);%將圖像轉(zhuǎn)換為double類型便于MATLAB中的計(jì)算%確定圖像的長(zhǎng)寬M=size(I,1);%長(zhǎng)N=size(I,2);%寬l=M*N;%圖像長(zhǎng)寬之積forn=1:8;%剔除每層fori=1:Mforj=1:NB=numdec2bin(I(i,j),8);%先將每個(gè)像素轉(zhuǎn)換為8位2進(jìn)制序列B(n)=[];%刪除相應(yīng)位置的元素y(i,j)=numbin2dec(B);%將剩下的7個(gè)元素轉(zhuǎn)換為10進(jìn)制數(shù)放入y矩陣中endendy=uint8(y);%將10進(jìn)制的矩陣轉(zhuǎn)換為無符號(hào)整形subplot(4,2,9-n);%顯示n個(gè)圖像,每層是相應(yīng)的剔除該層的結(jié)果imshow(y);%顯示這個(gè)圖像title(strcat('去除第',num2str(9-n),'層后的結(jié)果'));%顯示標(biāo)題end附帶的兩個(gè)函數(shù):functiony=numdec2bin(x,n);%從函數(shù)將十進(jìn)制數(shù)x轉(zhuǎn)化為n位二進(jìn)制y=zeros(1,n);a=x;
i=n;whilea>0y(i)=mod(a,2);a=floor(a/2);i=i-1;endfunctiony=numbin2dec(x)%將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)a=0;lx=length(x);fori=1:lxa=a+x(i)*2人(lx-i);endy=a;去除第i層后的結(jié)果去除第3層后的結(jié)果的結(jié)果去除第7層后的結(jié)果去除第i層后的結(jié)果去除第3層后的結(jié)果的結(jié)果去除第7層后的結(jié)果Matlab的RGB轉(zhuǎn)換為YCbCr之后轉(zhuǎn)換回來和原圖不符這個(gè)是做JPEG圖像壓縮的時(shí)候遇到的一個(gè)問題,當(dāng)時(shí)的代碼是用C寫的但是結(jié)果不對(duì),后來想到用matlab進(jìn)行驗(yàn)證結(jié)果發(fā)現(xiàn)通過公式轉(zhuǎn)換得到的圖是錯(cuò)的。原理:BMP圖像壓縮為JPEG的第一步是將RGB色彩空間通過這個(gè)公式映射到Y(jié)CbCr空間上。Y=0.299R+0.587G+0.114BCb=-0.1687R-0.3313G+0.5B+128Cr=0.5R-0.4187G-0.0813B+128然后再進(jìn)行量化,DCT,編碼等等步驟。JPEG解壓時(shí)需要將YCbCr空間的圖像又轉(zhuǎn)化回來到RGB上。R=Y+1.402(Cr-128)G=Y-0.34414(Cb-128)-0.71414(Cr-128)B=Y+1.772(Cb-128)但是通過書上給的公式和網(wǎng)上大部分公式卻發(fā)現(xiàn)根本轉(zhuǎn)化不會(huì)來。下面是寫的程序代碼以及測(cè)試得到的結(jié)果圖像。clc,clear;Source=imread('hl.jpg');%讀入原始RGB圖像figure(1);subplot(1,2,1);imshow(Source):title('originalimage');%顯示圖像[rcd]=size(Source);%計(jì)算圖像大小% 計(jì)算紅色分量并顯示分解圖 %R(:,:,1)=Source(:,:,1);R(:,:,2)=zeros(r,c);R(:,:,3)=zeros(r,c);R=uint8(R);whos;figure(2);subplot(1,3,1);imshow(R)title('RedComponent');% 計(jì)算綠色分量并顯示分解圖 %G(:,:,2)=Source(:,:,2);G(:,:,1)=zeros(r,c);G(:,:,3)=zeros(r,c);G=uint8(G);figure(2);subplot(1,3,2);imshow(G)title('GreenComponent');% 計(jì)算藍(lán)色分量并顯示分解圖 %B(:,:,3)=Source(:,:,3);B(:,:,1)=zeros(r,c);B(:,:,2)=zeros(r,c);B=uint8(B);figure(2);subplot(1,3,3)imshow(B)title('BlueComponent');% 合成 %Comp(:,:,1)=R(:,:,1);Comp(:,:,2)=G(:,:,2);Comp(:,:,3)=B(:,:,3);figure(1);subplot(1,2,2);imshow(Comp):title('compositionimage');Y=0.229*R+0.587*G+0.114*B;Cb=0.5*B-0.1687*R-0.3313*G+128;Cr=0.5*R-0.4187*G-0.0813*B+128;red=Y+1.402*(Cr-128);green=Y-0.34414*(Cb-128)-0.71414*(Cr-128);blue=Y+1.772*(Cb-128);Comp2(:,:,1)=red(:,:,1);Comp2(:,:,2)=green(:,:,2);Comp2(:,:,3)=blue(:,:,3);figure(3);imshow(Comp2);title('RGB轉(zhuǎn)換為YCrCb后又轉(zhuǎn)換為RGB的圖像');RD=R(:,:,1)-red(:,:,1);GD=G(:,:,2)-green(:,:,2);BD=B(:,:,3)-blue(:,:,3);figure(4);subplot(1,3,1);imshow(RD);title('紅色分量差異');subplot(1,3,2);imshow(GD);title('綠色分量差異');subplot(1,3,3);imshow(BD);title('藍(lán)色分量差異');然而可以通過figure(4)的圖像清楚看到R和G分量轉(zhuǎn)換后恢復(fù)與以前的差別很大。而且看了一下matlab自帶的rgb2ycbcr和ycbcr2rgb并且用了這兩個(gè)函數(shù)測(cè)試后圖像是一樣的。很是不解實(shí)驗(yàn)得到的圖為:nrininalimacannmnnQ計(jì)icnimacanrininalimacannmnnQ計(jì)icnimaca將源圖像分為RGB三個(gè)部分。將源圖像分為RGB三個(gè)部分。RedComponentGreenComponentBlueComponent將源圖像的RGB分量轉(zhuǎn)換到Y(jié)CbCr上后又轉(zhuǎn)化為RGB得到的三個(gè)分量差異的圖。紅色分量差異綠色分量差異藍(lán)色分量差異紅色分量差異綠色分量差異藍(lán)色分量差異matlab函數(shù)轉(zhuǎn)換的y分量matlab函數(shù)轉(zhuǎn)換的Cb分量natlab函數(shù)轉(zhuǎn)換的Cr分量從最后的結(jié)果可以看出原圖轉(zhuǎn)換到Y(jié)CbCr空間之后又轉(zhuǎn)化回來得到的圖像與原圖不符….RGB轉(zhuǎn)換為RGB轉(zhuǎn)換為YCrCb后又轉(zhuǎn)換為RGB的圖像以上只是我自己用Matlab做過的部分問題,還有一些比如場(chǎng)聲源定位Music算法仿真,DES加密算法。神經(jīng)網(wǎng)絡(luò)濾波器等等,鑒于代碼量太大,就不再敖述。二Simulink學(xué)習(xí)心得與編程實(shí)踐SIMILINK模塊庫(kù)按功能進(jìn)行分類,包括以下8類子庫(kù):Continuous(連續(xù)模塊)Discrete(離散模塊)Function&Tables(函數(shù)和平臺(tái)模塊)Math(數(shù)學(xué)模塊)Nonlinear(非線性模塊)Signals&Systems(信號(hào)和系統(tǒng)模塊)Sinks(接收器模塊)Sources(輸入源模塊)對(duì)于simulink來說其實(shí)沒什么好說的,需要什么就把什么拖到Model里面,連線之后設(shè)定參數(shù)。不是很麻煩的。但是重要的是對(duì)于系統(tǒng)的設(shè)計(jì)與仿真思想才是最重要的。而且里面的S-Function也是比較好的一個(gè)設(shè)計(jì),用S-Function可以自定義一些組件,使自己的仿真看上去更加清晰與精簡(jiǎn)。Simulink的工作方式:(1) 模塊內(nèi)的參數(shù)值首先會(huì)送到Matlab中進(jìn)行計(jì)算,得到的參數(shù)值會(huì)用來當(dāng)做以后需要調(diào)用的參數(shù)。(2) 模型系統(tǒng)中的各個(gè)層級(jí)將被平展開來,每一個(gè)子系統(tǒng)將被相應(yīng)的模塊所代替(3) 模塊按被處理的順序排列,此時(shí)代數(shù)回路結(jié)構(gòu)也被檢查出來,此種排列產(chǎn)生一個(gè)列表,以確保具有代數(shù)回路的模塊驅(qū)動(dòng)輸入的模塊被更新后才更新。(4) 檢查塊之間的鏈接,是否每一個(gè)塊的輸出端口與它所連接的模塊輸入端口有相同的信號(hào)寬度?,F(xiàn)在可以準(zhǔn)備執(zhí)行仿真操作,仿真時(shí)使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度工地施工安全培訓(xùn)責(zé)任免除協(xié)議
- 2025年度城市綠化景觀土地使用權(quán)轉(zhuǎn)讓與維護(hù)合同
- 2025年度大學(xué)實(shí)習(xí)生實(shí)習(xí)期間權(quán)益保護(hù)與職業(yè)規(guī)劃合同
- 2025年度婚嫁婚前財(cái)產(chǎn)繼承與分配協(xié)議
- 健身房裝修合同標(biāo)準(zhǔn)
- 2025年度礦山地質(zhì)災(zāi)害防治投資合作協(xié)議
- 2025年度宅基地使用權(quán)轉(zhuǎn)讓與農(nóng)村旅游基礎(chǔ)設(shè)施建設(shè)合同
- 2025年度山林林業(yè)生態(tài)補(bǔ)償租賃合同
- 2025年度家具加工廠轉(zhuǎn)讓協(xié)議
- 2025年湖北生態(tài)工程職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 2025年官方策劃完整個(gè)人離婚協(xié)議書模板
- 2025年度跨境電商平臺(tái)股權(quán)合同轉(zhuǎn)讓協(xié)議
- 2025年益陽(yáng)醫(yī)學(xué)高等??茖W(xué)校高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 餐飲業(yè)的供應(yīng)鏈管理與優(yōu)化
- 2025年紹興市上虞大眾勞動(dòng)事務(wù)代理(所)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 酒店會(huì)議接待服務(wù)方案
- 心律失常介入并發(fā)癥及預(yù)防
- 《分娩機(jī)轉(zhuǎn)》課件
- 口腔醫(yī)院市場(chǎng)營(yíng)銷新入職員工培訓(xùn)
- 軍隊(duì)文職備考(面試)近年考試真題(參考300題)
- 金融業(yè)稅收優(yōu)惠政策指引
評(píng)論
0/150
提交評(píng)論