第一篇:matlab總結(jié)1
1、matlab中離散的點擬畫成連續(xù)曲線形式的圖形,使用spline(xx,yy)函數(shù)
2、如果想在一副圖片里畫多個圖,就不要使用figure,而是在plot后面,hold on
3、在曲線上加上標注,用text(x,y,'string')
4、在圖框的部分加入每條曲線的描述legend(‘Extended DynamiCS’,‘DynamiCS’)
5、plot(x,num(i,:));%這里面的num(i,:)其實就是代表每一個excel中的行
6、[num, txt]= xlsread('采樣數(shù)據(jù).xls', 'B:BA');代表excel中的數(shù)據(jù)從B列到BA列,這在5中的num中的參數(shù)進行賦值,其中第一個 表示哪一行,:表示從第一列到最后一列。
7、設(shè)計到excel中必須使用for循環(huán)的形式,因為每次是對一行數(shù)據(jù)進行的處理。在結(jié)尾處要用到end 8 讀取excel中數(shù)據(jù)問題
(1).用matlab從excel中讀取數(shù)據(jù)
例:excel表的文件名為book1.xls,存放在E: 讀取命令:data = xlsread('E:book1');
如果讀取數(shù)值的同時想讀取excel中的文字可以使用下面的命令: [data,text] = xlsread('E:book1');
(2).用matlab將數(shù)據(jù)寫入excel(3)讀間隔的幾列。
xlswrite(filename, M, sheet, range)(3)[NUM,TXT,RAW]=xlsread(FILE)(4)讀取指定目錄的文件[num, txt]= xlsread('C:UsersAdministratorDesktop新建文件夾WeightLog_20140219.xls', 'C:D')
如果想要讀取其中的某一行,則比如,讀取D行,則D:D形式
表示取出來的數(shù)據(jù),數(shù)值放在數(shù)組NUM中,文本放在Txt中,其它放在RAW中; 后面xlsread()中的參數(shù),可以 9 取數(shù)組的某一行
b=data(i,:);這里i表示取數(shù)組的某一行,然后用“,”隔開,后面的內(nèi)容表示列數(shù),其中“:”表示從多少到多少,如果兩邊都不寫,表示從開始到結(jié)束 同樣也可以取特定的列的行數(shù) b=data(:,i)
且這里的i為從1到多少開始,并不是傳統(tǒng)數(shù)組中的0表示第一行,這里是1表示第一行 10 打開網(wǎng)格
如果畫圖時候,想要打開網(wǎng)格顯示,在plot等下面要寫上 grid on 11 yy=spline(x,y,xx);其中xx為步長(或者插值間隔)
這個函數(shù)將x,y離散的數(shù)據(jù),通過樣條插值取出xx的yy處的值。12 size():獲取矩陣的行數(shù)和列數(shù)
(1)s=size(A), 當(dāng)只有一個輸出參數(shù)時,返回一個行向量,該行向量的第一個元素時矩陣的行數(shù),第二個元素是矩陣的列數(shù)。(2)[r,c]=size(A), 當(dāng)有兩個輸出參數(shù)時,size函數(shù)將矩陣的行數(shù)返回到第一個輸出變量r,將矩陣的列數(shù)返回到第二個輸出變量c。
(3)size(A,n)如果在size函數(shù)的輸入?yún)?shù)中再添加一項n,并用1或2為n賦值,則 size將返回矩陣的行數(shù)或列數(shù)。其中r=size(A,1)該語句返回的時矩陣A的行數(shù),c=size(A,2)該語句返回的時矩陣A的列數(shù)。另外,length()=max(size()).13、ones()ones產(chǎn)生全1矩陣
>> ones(3,4)
ans = 14 zeros 產(chǎn)生全0的矩陣
>> zeros(1,3)
ans =
0
0
0
15、net=newff(minmax(P'),[5,2,1],{'tansig','tansig','purelin'},'trainrp');
其中第一個表示輸入向量的最大最小值。這里面應(yīng)用到轉(zhuǎn)置,因為輸入向量是將輸入?yún)?shù)一次輸入n個,然后一次類推。第二個參數(shù)是每一層神經(jīng)元的個數(shù),第三個是每一層的傳遞函數(shù),有幾層就有幾個傳遞函數(shù),從輸出層到輸出要有傳遞函數(shù)的一般是線性。
16、求矩陣的最大值
max(a,[],dim)
這個函數(shù)的意思是針對于2維矩陣的,dim是英文字母dimension的縮寫,意思是維數(shù)。當(dāng)dim=1時,比較的a矩陣的列,也就是和max(a)的效果是一樣的;當(dāng)dim2時,比較的是a矩陣的行。下面舉個例子 a=[1,2,3;4,5,6]
max(a)=max(a,[],1)=[4,5,6] 比較的第一行和第二行的值 max(a,[],2)=[3,6]
17、求矩陣的非零元素的個數(shù)
sum(a~=0,2)一行中非零元素的個數(shù),結(jié)果返回的是一個列向量。
sum(a~=0)找出一列中非零元素的個數(shù),結(jié)果返回的是行。
sum(a),是求和,即矩陣中對應(yīng)列元素求和,最后返回的是行
sumsqr(a)矩陣中元素平方,然后在求和,如果是多行,那么最后返回一行。
18提取數(shù)組的非零元素
由于矩陣的每一行的非0元素個數(shù)并不相同,因此不存在提取非0元素之后重新組成矩陣,只可以對其中的每一行或者每一列單獨操作。
A=a(a~=0)或者a=nonzeros(a)’
中位值用median(a)或者median(a,2)
19,求離散序列的極值。
>> aa=randperm(20)aa = 13 17 7 19 18 14 8 11 2 20 3 6 4 15 1 12 10 5 9 >> bb=intersect(find(diff(aa)>0)+1,find(diff(aa)<0))其中diff表示對數(shù)據(jù)進行求導(dǎo),diff(a,n),其中n表示導(dǎo)數(shù)的次數(shù)階數(shù)。
20標準差(均方差)
均方誤差(mean squared error,均方誤差是各數(shù)據(jù)偏離平均數(shù)的距離平方的平均數(shù)
是方差的平方根,matlab中沒有直接求方差的,因此需要先求均方差,然后再平方求得方差。Std(a),如果a是一維向量,那么就可以直接求。如果是多行的,那么就表示求得是一列一列的。
Std(a,0,2)表示求得每一行的標準差。中間一個如果是0,則表示除以n-1,如果是1,則表示除以n Var:
要注意的是var函數(shù)所采用公式中,分母不是,而是。這是因為var函數(shù)實際上求的并不是方差,而是誤差理論中“有限次測量數(shù)據(jù)的標準偏差的估計值 求極值點并且作圖
離散數(shù)據(jù)的求導(dǎo),一般是采用前向差分的方法,例如x(k)-x(k-1)
如果離散數(shù)據(jù)的長度為N,則求出來倒數(shù)的長度為N-1; 例如:
>> f=[1 2 3];>> diff(f)
ans =
Sign(x),如果x大于0,則返回1;
如果x的每一個元素小于0,則返回-1;
如果x的元素等于0,則返回0。
Diff函數(shù),如果x是多行多維的矩陣,那么diff(a)是從最后一行開始減去上一行,計算完成后,第一行消失,行數(shù)減1.只有一行的時候,從最后一列開始往前減,第一列消失。極小值點:
Idmax=find(diff(sign(diff(a)))<0)+1;極大值點
Idmin=find(diff(sign(diff(a)))>0)+1;極小值點 Ind=find(diff(sign(diff(a)))~=0)+1;
極值點 Plot(x,y,x(ind),y(ind))其中y(ind)表示對應(yīng)的值。
C=a(find(a==0));找出a==0的點,并且找出找出值,如果是多行矩陣的話,由于每一行的參數(shù)不一定相同,因此只返回一列。一般是對單行矩陣操作。如果沒有,則返回NaN
第二篇:matlab總結(jié)
班級: 學(xué)號: 姓名:
Matlab學(xué)習(xí)綜述
MATLAB是一種科學(xué)計算軟件,專門以矩陣的形式處理數(shù)據(jù)。MATLAB將高性能的數(shù)值計算和強大的數(shù)據(jù)可視化功能集成在一起,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應(yīng)用于科學(xué)計算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和設(shè)計工作,而且利用MATLAB產(chǎn)品的開放式結(jié)構(gòu),可以非常容易地對MATLAB的功能進行擴充。
MATLAB產(chǎn)品由若干個模塊組成,不同的模塊完成不同的功能,其中主要的核心模塊有MATLAB、MATLAB Toolboxex、MATLAB Compiler Simulink、Simulink Blocksets、Real-time Workshop(RTW)Stateflow。這些產(chǎn)品大體上可以分為以MATLAB為基礎(chǔ)的產(chǎn)品和以Simulink為基礎(chǔ)的產(chǎn)品兩大分支。其中,MATLAB是MATLAB產(chǎn)品家族的基礎(chǔ),任何其他MATLAB產(chǎn)品產(chǎn)品都以這個模塊為基礎(chǔ)。MATLAB的桌面應(yīng)用程序開發(fā)工具是以MATLAB Compiler為核心的一組編譯工具。Simulink是基于MATLAB的框圖設(shè)計環(huán)境,可以用來對各種動態(tài)系統(tǒng)進行建模,分析和仿真,它的建模范圍廣泛,可以針對任何能夠用數(shù)字來描述的系統(tǒng)進行建模。
一種完整的計算機應(yīng)用語言應(yīng)該提供對數(shù)據(jù)的描述和對數(shù)據(jù)的操作。在M語言中,最常用的數(shù)據(jù)類型表現(xiàn)手段和形式就是變量和常量,由于MATLAB軟件自身的特點,它是一種以數(shù)值計算為基礎(chǔ)的軟件,因此M語言的基本處理單位是數(shù)值矩陣或者數(shù)值向量,在M語言中統(tǒng)一將矩陣或者向量稱之為數(shù)組,因此掌握一些基本的矩陣、向量和數(shù)組操作的基本知識就成為了掌握MATLAB軟件的基礎(chǔ)。變量和常量是編程語言中類型的表現(xiàn)手段和形式,掌握變量和常量的概念也是掌握M語言編程的基礎(chǔ)。所謂變量,就是指在程序運行中需要改變數(shù)值的量,每一個變量都具有一個名字,變量將在內(nèi)存中占據(jù)一定的空間,以在程序運行的過程中保存其數(shù)值,對變量的命名有相應(yīng)的要求:變量必須以字母開頭,后面可以是字母、數(shù)字或者下劃線之間的組合。所謂常量就是在程序運行的過程中不需要改變數(shù)值的量。
MATLAB專門以矩陣作為基本的運算單位,首先要掌握向量、矩陣、索引和多維數(shù)組的概念,以及在MATLAB環(huán)境下創(chuàng)建向量、矩陣和多維數(shù)組的方法,以及操作矩陣和多維數(shù)值的函數(shù)的使用方法。
目前的MATLAB版本中不僅有多達十幾種的基本數(shù)據(jù)類型。在不同的專業(yè)工具箱中還有特殊的數(shù)據(jù)類型,并且MATLAB還支持面向?qū)ο蟮木幊碳夹g(shù),支持用戶自定義的數(shù)據(jù)類型。獲取MATLAB的數(shù)據(jù)類型可以在MATLAB命令行窗體中鍵入help datatypes。MATLAB的數(shù)據(jù)類型包括基本的數(shù)值類型,邏輯類型數(shù)據(jù)、元胞數(shù)值、結(jié)構(gòu)和字符串等,需要指出一點,MATLAB的基本數(shù)據(jù)是雙精度數(shù)據(jù)類型和字符類型。MATLAB提供了完整的編寫應(yīng)用程序的功能,這種能力被稱為M語言的高級語言來實現(xiàn)。這種語言是一種解釋性語言,利用該語言編寫的代碼僅能被MATLAB接受,被MATLAB解釋執(zhí)行。其實,一個M語言文件就是由若干MATLAB的命令組合在一起構(gòu)成的,和C語言類似。M語言文件都是標準的純文本格式的文件,其文件的擴展名為.m。MATLAB的函數(shù)主要有兩類,一類被稱為內(nèi)建函數(shù),這類函數(shù)是由MATLAB的內(nèi)核提供的,能夠完成基本的運算,例如三角函數(shù)、矩陣運算函數(shù)等。另外一類函數(shù)就是利用高級語言開發(fā)的函數(shù)文件,這里的函數(shù)文件包括用C/FORTRAN語言開發(fā)的MEX函數(shù)文件,也包括了M函數(shù)文件。
M語言文件可以分為兩類,其中一類是腳本文件,另一類是函數(shù)文件,腳本文件是最簡單的一種M語言文件。所謂腳本文件就是由一系列的M語言文件指令和命令組成的純文本格式的M文件,執(zhí)行腳本文件時,文件中的指令或者命令按照出現(xiàn)在腳本文件中的順序依次執(zhí)行。腳本文件沒有輸入?yún)?shù),也沒有輸出參數(shù),腳本文件處理的數(shù)據(jù)或者變量必須在MATLAB的公共工作空間中,腳本文件主要是由注視行和代碼行組成。
函數(shù)文件是M文件最重要的組成部分,M語言函數(shù)文件能夠接受用戶的輸入?yún)?shù),并進行計算,然后將計算結(jié)果作為函數(shù)的返回值返回給調(diào)用者,M函數(shù)文件和腳本文件不同,函數(shù)文件不僅有自己特殊的文件格式,而且不同的函數(shù)還分別具有自己的工作空間,函數(shù)文件的輸/輸出參數(shù)不同,這些輸入/輸出參數(shù)在定義的時候不需要指出變量的類型,因為MATLAB默認這些參數(shù)都使用雙精度類型,這樣可以簡化程序的編寫。M語言的函數(shù)文件不僅可以有一個輸入?yún)?shù)和一個返回值,還可以為M語言函數(shù)文件定義多個輸入?yún)?shù)和多個輸出參數(shù),同一個M函數(shù)文件中可以包含多個函數(shù)。如果在同一個M函數(shù)文件中包含了多個函數(shù),那么將出現(xiàn)在文件中的第一個M函數(shù)稱為主函數(shù),其余的函數(shù)稱為子函數(shù)。
經(jīng)過這么一段時間的學(xué)習(xí),對MATLAB有了初步的認識。但是關(guān)于它還有很多知識我們所不知道,還有待進一步的學(xué)習(xí)。以上內(nèi)容是我對這學(xué)期所學(xué)課程的總結(jié),可能有些地方總結(jié)的不夠到位,因為有些地方學(xué)習(xí)的不夠深入,所以,以后要更加努力,在MATLAB的學(xué)習(xí)上多花一些時間,為以后的學(xué)習(xí)和工作打下基礎(chǔ)。
第三篇:MATLAB總結(jié)
目錄
一、Matlab相關(guān)說明.....................................................................2
二、Matlab操作注意事項..............................................................2
三、Matlab常用代碼(圖像處理相關(guān))......................................5
四、Matlab常用快捷鍵.................................................................7
五、Matlab學(xué)習(xí)心得.....................................................................8
一、Matlab相關(guān)說明
Matlab是“Matrix Laboratory”的縮寫,意為“矩陣實驗室”。MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。
MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數(shù)學(xué)軟件。在新的版本中也加入了對C,F(xiàn)ORTRAN,C++,JAVA的支持。
我所使用的Matlab版本是2012a,下文所涉及到圖片、專業(yè)術(shù)語等都是以此版本為基礎(chǔ)。
二、Matlab操作注意事項
1.打開并運行一個現(xiàn)存的m文件且這個m文件運行時需用到同一級文件夾中的其他文件,會出現(xiàn)如下提示框:
選擇變更文件夾,將當(dāng)前文件夾變更為這個m文件所在的文件夾。
2.不小心點錯或關(guān)閉了各種小窗口,將Matlab恢復(fù)成默認布局
點擊桌面—桌面布局—默認
3.查看某個函數(shù)的用法
在命令窗口輸入該變量的名稱,回車即可。
4.查找某個函數(shù)的用法
在命令窗口輸入help+函數(shù)的名稱,回車后會自動顯示該函數(shù)的相關(guān)信息。
5.運行文件后報錯 如下圖所示,命令窗口中報錯的第一段是錯誤的原因,后面幾段會顯示發(fā)生錯誤的文件夾以及在該文件夾中的位置。
點擊文件的名稱,會跳轉(zhuǎn)出一個提示框,上面顯示了該文件的具體實現(xiàn)功能,如下圖所示。點擊文件名后面的行標號,可以直接跳轉(zhuǎn)到發(fā)生錯誤的那一行。
6.如何編輯界面?
修改如圖所示的fig文件
1.新建一個GUI文件
2.選擇打開現(xiàn)存的GUI文件,點擊Open,就可以對當(dāng)前界面進行編輯了。
7.如何將MAtlab中默認的current folder修改為自己想要的路徑,每次啟動后都默認是自己 設(shè)定的這個路徑?
>>右鍵matlab 快捷方式,屬性-快捷方式-起始位置 填入你自己的工作目錄。8.把圖復(fù)制到WORD文件的方法:電機EDIT—>Copy Figure—>Ctrl+V 9.輸入時,標點必須是英文狀態(tài)下的
10.大多數(shù)情況下,matlab對空格不予處理
11.小括號代表運算級別,中括號用于生成矩陣,大括號用于構(gòu)成單元數(shù)組
12.分號;的作用:不顯示運算結(jié)果,但對圖形窗口不起作用。分號也用于區(qū)分行,13.逗號,的作用:函數(shù)參數(shù)分隔符,也用于區(qū)分行,顯示運算結(jié)果,當(dāng)然不加標點也顯示運算結(jié)果
14.冒號:多用于數(shù)組
15.續(xù)行號...不能放在等號后面使用,不能放在變量名中間使用,起作用時默認顯藍色 16.雙引號'string'是字符串的標識符 17.感嘆號!用于調(diào)用操作系統(tǒng)運算
18.百分號%是注釋號,百分號后面直到行末的語句matlab跳過執(zhí)行.另外還有一個塊注釋,即對多行一次注釋,會使用到,格式為(注意%{ 和%}都要單獨成行)%{ %} 19.矩陣中用圓括號表示下標,單元數(shù)組用大括號表示下標
20.對變量名的基本要求:區(qū)分大小寫,不超過63個字符,以字母開頭,只能是字母,數(shù)字和下劃線
三、Matlab常用代碼(圖像處理相關(guān))
1.創(chuàng)建一個文件夾 mkdir('D:myData');2.將圖片保存到指定的文件夾
image_source=strcat('result',num2str(loop),'.jpg');imwrite(F.cdata,image_source);3.將電影轉(zhuǎn)成圖片序列
fnum=size(mov,2);%讀取電影的禎數(shù) for i=1:fnum strtemp=strcat('C:UsersAdministratorDesktopparticalfiltermyself粒子濾波',int2str(i),'.jpg');%將每禎轉(zhuǎn)成jpg的圖片 imwrite(mov(i).cdata,strtemp,'jpg');end
4、模擬噪聲生成函數(shù)和預(yù)定義濾波器
① imnoise:用于對圖像生成模擬噪聲,如:
i=imread('104_8.tif');j=imnoise(i,'gaussian',0,0.02);%模擬高斯噪聲 ② fspecial:用于產(chǎn)生預(yù)定義濾波器,如: h=fspecial('sobel');%sobel水平邊緣增強濾波器 h=fspecial('gaussian');%高斯低通濾波器 h=fspecial('laplacian');%拉普拉斯濾波器
h=fspecial('log');%高斯拉普拉斯(LoG)濾波器 h=fspecial('average');%均值濾波器
5、圖像文件I/O函數(shù)命令
imfinfo 返回圖形圖像文件信息
語法:info=imfinfo(filename,fmt)info=imfinfo(filename)imread 從圖像文件中讀取(載入)圖像
語法:A=imread(filename,fmt)[X,map]=imread(filename,fmt)[...]=imread(filename)[...]=imread(URL,...)[...]=imread(...,idx)(CUR,ICO,and TIFF only)[...]=imread(...,'frames',idx)(GIF only)[...]=imread(...,ref)(HDF only)[...]=imread(...,'BackgroundColor',BG)(PNG only)[A,map,alpha] =imread(...)(ICO,CUR,PNG only)imwrite 把圖像寫入(保存)圖像文件中
語法:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)imwrite(...,filename)imwite(...,Param1,Val1,Param2,Val2...)imcrop 剪切圖像
語法:I2=imcrop(I)X2=imcrop(X,map)RGB2=imcrop(RGB)I2=imcrop(I,rect)X2=imcrop(RGB,rect)[...]=imcrop(x,y,...)[A,rect]=imcrop(...)[x,y,A,rect]=imcrop(...)
6.impixel 確定像素顏色值
語法:P=impixel(I)P=impixel(X,map)P=impixel(RGB)P=impixel(I,c,r)P=impixel(X,map,c,r)P=impixel(RGB,c,r)[c,r,P]=impixel(...)P=impixel(x,y,I,xi,yi)P=impixel(x,y,RGB,xi,yi)P=impixel(x,y,X,map,xi,yi)[xi,yi,P]=impixel(x,y,...)
7.二進制圖像操作函數(shù)
applylut 在二進制圖像中利用lookup表進行行邊沿操作 語法:A=applylut(BW,LUT)bwarea 計算二進制圖像對象的面積 語法:total=bwarea(BW)bweuler 計算二進制圖像的歐拉數(shù) 語法:eul=bweuler(BW)
8.顏色空間轉(zhuǎn)換函數(shù)
hsv2rgb 轉(zhuǎn)換HSV值為RGB顏色空間:M=hsv2rgb(H)ntsc2rgb 轉(zhuǎn)換NTSC值為RGB顏色空間:rgbmap=ntsc2rgb(yiqmap)RGB=ntsc2rgb(YIQ)rgb2hsv 轉(zhuǎn)換RGB值為HSV顏色空間:cmap=rgb2hsv(M)rgb2ntsc 轉(zhuǎn)換RGB值為NTSC顏色空間:yiqmap=rgb2ntsc(rgbmap)YIQ=rgb2ntsc(RGB)rgb2ycbcr 轉(zhuǎn)換RGB值為YCbCr顏色空間:ycbcrmap=rgb2ycbcr(rgbmap)YCBCR=rgb2ycbcr(RGB)ycbcr2rgb 轉(zhuǎn)化YCbCr值為RGB顏色空間:rgbmap=ycbcr2rgb(ycbcrmap)RGB=ycbcr2rgb(YCBCR)
9.類型轉(zhuǎn)換函數(shù)
im2bw 轉(zhuǎn)換圖像為二進制圖像
語法:BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)im2double 轉(zhuǎn)換圖像矩陣為雙精度型
語法:I2=im2double(I1)RGB2=im2double(RGB1)I=im2double(BW)X2=im2double(X1,'indexed')double 轉(zhuǎn)換數(shù)據(jù)為雙精度型 語法:double(X)unit8、unit16轉(zhuǎn)換數(shù)據(jù)為8位、16位無符號整型: i=unit8(x)i=unit16(x)im2unit8 轉(zhuǎn)換圖像陣列為8位無符號整型
語法:I2=im2unit8(I1)RGB2=im2unit8(RGB1)I=im2unit8(BW)X2=im2unit8(X1,'indexed')im2unit16 轉(zhuǎn)換圖像陣列為16位無符號整型
語法:I2=im2unit16(I1)RGB2=im2unit16(RGB1)I=im2unit16(BW)X2=im2unit16(X1,'indexed')
四、Matlab常用快捷鍵
1.在命令窗口(Command Window)中:
1)【上、下鍵】――切換到之前、之后的命令,可以重復(fù)按多次來達到你想要的命令
2)clc――清除命令窗口顯示的語句,此命令并不清空當(dāng)前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉
3)clear――這個才是清空當(dāng)前工作區(qū)的變量命令,常用語句clear all來完成 4)【Tab】鍵――在command窗口,輸入一個命令的前幾個字符,然后按tab鍵,會彈出前面含這幾個字符的所有命令,找到你要的命令,回車,就可以自動完成。目前討論結(jié)果是:matlab6.5版本中,如果候選命令超過100個,則不顯示。而在matlab7以后版本中,則沒有這個限制,均可正常提示 5)【Ctrl+C】(或【Ctrl+Break】)――在matlab程序運行過程中,可能由于程序編寫的失誤,導(dǎo)致程序不停的運行,在命令窗口輸入“Ctrl+C”可以將運行的程序停下來,而不需要將整個Matlab程序關(guān)掉。不過進行此操作的前提是能夠激活切換到命令窗口才行。6)edit+函數(shù)名 查看或編輯源文件 7)who 顯示當(dāng)前變量名列表 8)whos 顯示變量詳細列表
9)which+函數(shù)名 證實該函數(shù)是否在當(dāng)前路徑 10)what 列出當(dāng)前路徑的所有matlab文件 11)load 加載外部文件 12)save 保存文件到外部 13)20.matlab的幫助函數(shù): 14)help 15)help+函數(shù)名或help+函數(shù)類名 精確查詢 16)helpwin 打開幫助窗口 17)helpwin+函數(shù)名 精確查詢 18)helpdesk 打開幫助窗口 19)doc 打開幫助窗口
20)doc+函數(shù)名 打開幫助窗口,精確查詢
21)lookfor+關(guān)鍵字 這個是matlab中的谷歌,模糊查詢
2.在編輯器(Editor)中: 1)【Tab】(或【Ctrl+]】)――增加縮進(對多行有效)2)3)4)5)6)【Ctrl+[】--減少縮進(對多行有效)
【Ctrl+I】--自動縮進(即自動排版,對多行有效)【Ctrl+R】――注釋(對多行有效)【Ctrl+T】――去掉注釋(對多行有效)
【Ctrl+B】――括號配對檢查(對版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請大牛們指點,其他版本沒有測試過)7)【F12】――設(shè)置或取消斷點 8)【F5】――運行程序
五、Matlab學(xué)習(xí)心得
接觸Matlab一個多月,從剛開始連最基本的操作都不會,到現(xiàn)在能夠熟練地運用Matlab解決問題。雖然現(xiàn)在學(xué)到的也只是皮毛而已,離精通還相差甚遠,但至少為以后研究生期間的學(xué)習(xí)打下了良好的基礎(chǔ)。下面我就簡單的談一下這一個月來的學(xué)習(xí)感想。
首先,想要學(xué)好Matlab必須有一定數(shù)學(xué)基礎(chǔ)。Matlab軟件是與高等數(shù)學(xué),計算機科學(xué)相結(jié)合的軟件。所以,當(dāng)你學(xué)習(xí)Matlab時,你也得會一定的數(shù)學(xué)。你要盡量多的熟悉matlab自帶的函數(shù),及其作用,因為matlab的自帶函數(shù)特別多,基本上能夠滿足一般的數(shù)據(jù)和矩陣的計算,所以基本上不用你自己編函數(shù)。這一點對你的程序非常有幫助,可以使你的程序簡單,運行效率高,可以節(jié)省很多時間。
其次,要注重基礎(chǔ)知識于實際操作結(jié)合。你把基本的知識看過之后,就需要找一個實際的程序來動手編一下,不要等所有的知識都學(xué)好之后再去編程,你要在編程的過程中學(xué)習(xí),程序需要什么知識再去補充。在遇到問題時,不要光看別人如果解決,也不要光想怎么解決,自己坐下來,動手自己解決一下,那你就會把不是你的知識變成自己的知識。
最后,也是最重要的一點就是堅持。MATLAB涉及的領(lǐng)域太多,每個領(lǐng)域里面都缺乏足夠的專家分布在你周圍。那么我們很難有機會接觸到真正的高手,對我們的技術(shù)細節(jié)一一指點。在遇到實際問題時,就只能靠自己去摸索。常常是再堅持一兩個小時,就能夠解決你的問題。最大的成就感,就在付出了極大的心血和耐心,才取得一個艱難的小勝利。
第四篇:Matlab學(xué)習(xí)總結(jié)
學(xué)Matlab有感
姓名:王鴻棟 學(xué)號:20090286 班級: 03310901 我對于計算機編程接觸的比較晚,也沒有特別大的興趣。不過對于Matlab這門課我還是很喜歡的。一是這個語言可以變出程序繪出函數(shù)的圖形,這就使得這個語言可以被“看見”,感覺比較親切,不是那么縹緲空虛的東西。二是這個語言卻是很“友好”,很人性化,像我剛學(xué)習(xí)這門語言,還什么都不會編的時候,我隨便打出了一句help,界面上就輸出了幫助文檔。三是這個語言的強大的功能,1.3G不是白給的,很多C、java里需要用循環(huán)語句來完成的,在Matlab里只需要一句話就可以搞定了,剛上這門課時老師說C一堂課講授的內(nèi)容Matlab一句話就可以搞定了,看來不是假的。四是這門語言確實很有用,信號與系統(tǒng)課上學(xué)的很多內(nèi)容都可以用Matlab來仿真,另外這門語言在很多其他的領(lǐng)域也都很有用,所以,我打算好好學(xué)習(xí)這門語言。
第一次交作業(yè)時我還只交上了兩道題,那時候?qū)@門語言接觸得還比較少,但是就在交作業(yè)的那天我打算好好學(xué)習(xí)這門語言,而且在寫作業(yè)的時候我確實喜歡上了這門語言。雖然第一次由于時間倉促只交上了兩道題,可是那都是我自己寫的,我覺得只有這樣才能學(xué)到東西。第二天,在別人都在做第二次作業(yè)的時候,我卻仍然在做第一次作業(yè),我打算把第一次的作業(yè)完整的寫一遍,即使這對我的分數(shù)一點幫助也沒有。第二次作業(yè)我提前好幾天就寫完了,雖然沒有完成全部的題目。我把第一第二次作業(yè)一起交了上去,我希望老師能幫我看一看。
上面只是對這門課程的一些懷念,課程已經(jīng)結(jié)束了,不過我會繼續(xù)學(xué)習(xí)這門語言的。下面就針對這次作業(yè)的要求,給這門課提一些看法,畢竟這才是正題。MATLAB 產(chǎn)品族可以用來進行以下各種工作:
● 數(shù)值分析
● 數(shù)值和符號計算
● 工程與科學(xué)繪圖
● 控制系統(tǒng)的設(shè)計與仿真
● 數(shù)字圖像處理
● 數(shù)字信號處理
● 通訊系統(tǒng)設(shè)計與仿真
● 財務(wù)與金融工程
MATLAB 的應(yīng)用范圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設(shè)計、測試和測量、財務(wù)建模和分析以及計算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱(單獨提供的專用 MATLAB 函數(shù)集)擴展了 MATLAB 環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。說實在的想完全掌握全部的基本上是不可能的,就像dsp一樣,應(yīng)用的范圍很廣,想一口吃可能不行,所以要結(jié)合專業(yè)來學(xué)習(xí)才好!
對于我們這些學(xué)習(xí)了C語言的學(xué)生,編程基本的語法學(xué)習(xí)起來很快的,和c語言很類似,而且是支持c語言函數(shù)的,或者說函數(shù)就是用c語言編的,完全是解釋性的語言,像打草稿一樣,可以一句句的編譯,看結(jié)果的。
等我們編到基本的熟悉之后就可以編輯函數(shù)了,-------這個其實用的不多,為了應(yīng)用的話,老師建議開始編寫M文件,也就是把程序都寫在m文件里面,然后編譯,調(diào)試,根據(jù)錯誤信息來調(diào)試。
至于和專業(yè)相關(guān)的方面就說說自動化方面吧!和控制理論,fft,用的比較多,根軌跡,相平面,傳遞函數(shù),拉普拉斯變換,奈氏曲線什么的,基本上都可以解決
03310901班
王鴻棟 20090286 對于授課方式,我覺得上課時老師是結(jié)合信號與系統(tǒng)來講的,就是說課程的定位就是交給我們解決信號與系統(tǒng)方面問題的一個方法。我覺得Matlab功能遠遠不止于此。而且老師在課上講程序都是一帶而過,我覺得講授的程序不必很多,一堂課只講幾個程序,但是對于每個程序,如果老師都能給我們進行分析,把這個程序?qū)⒚靼琢耍敲催@堂課我們就能學(xué)到很多東西。而且這樣講課也不會使我們覺得枯燥。
對提高Matlab編程能力的方法,我想主要有以下三個: 1.查help 2.多上上論壇,搜索帖子、發(fā)帖子問人 3.閱讀別人、特別是牛人的程序
當(dāng)然了,正如所有的程序語言一樣,“3分課本7分上機”,一定要動手才行,不能光看。多想、多思考、多嘗試,才是正路。
最后,整理一下常用的快捷鍵(用【】表示)或命令: 1.在命令窗口(Command Window)中:
1)【上、下鍵】――切換到之前、之后的命令,可以重復(fù)按多次來達到你想要的命令 2)clc――清除命令窗口顯示的語句,此命令并不清空當(dāng)前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉
3)clear――這個才是清空當(dāng)前工作區(qū)的變量命令,常用語句clear all來完成
4)【Tab】鍵――(在command窗口,輸入一個命令的前幾個字符,然后按tab鍵,會彈出前面含這幾個字符的所有命令,找到你要的命令,回車,就可以自動完成。目前討論結(jié)果是:Matlab6.5版本中,如果候選命令超過100個,則不顯示。而在Matlab7以后版本中,則沒有這個限制,均可正常提示
5)【Ctrl+C】(或【Ctrl+Break】)――在Matlab程序運行過程中,可能由于程序編寫的失誤,導(dǎo)致程序不停的運行,在命令窗口輸入“Ctrl+C”可以將運行的程序停下來,而不需要將整個Matlab程序關(guān)掉。不過進行此操作的前提是能夠激活切換到命令窗口才行,呵呵。
2.在編輯器(Editor)中: 1)【Tab】(或【Ctrl+]】)――增加縮進(對多行有效)2)【Ctrl+[】--減少縮進(對多行有效)
3)【Ctrl+I】--自動縮進(即自動排版,對多行有效)4)【Ctrl+R】――注釋(對多行有效)5)【Ctrl+T】――去掉注釋(對多行有效)
6)【Ctrl+B】――括號配對檢查(對版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請大牛們指點,其他版本沒有測試過)
7)【F12】――設(shè)置或取消斷點 8)【F5】――運行程序
其余的例如在Debug狀態(tài)下的快捷鍵可以自己看菜單。
就說這么多,通過這個小學(xué)期,我覺得自己真的學(xué)到了很多!
03310901班
王鴻棟 20090286
第五篇:Matlab常用指令總結(jié)
概論
format long顯示更多位數(shù) format short顯示少位數(shù)
format hex將數(shù)字顯示為十六進制浮點數(shù),(3fb999999999999a,a-f代表十六進制數(shù),前三字符為)
double()將數(shù)字轉(zhuǎn)化為雙精度浮點數(shù) ezplot(f,0,4)繪制f函數(shù)[0,4]圖像 plot(x,y)繪制點或者連線 zeros(n,1)產(chǎn)生n維0向量
fibonacci(n)產(chǎn)生N個斐波那契數(shù)
求解矩陣
sum(A)對每一列的矩陣元素求和 a’為將矩陣A轉(zhuǎn)置
sum(diag(A))矩陣A主對角元素之和 flipud(A)將A翻過來(上下)det(A)求A行列式的解 inv(A)求A的逆矩陣
norm(A)矩陣范數(shù)eig(A)特征值svd(A)奇異值 a=A(:,[1 3 2 4])交換矩陣二、三列
AX=B可以為X=AB xA=B可以為X=B/A norm(x,1)計算x的一階范數(shù)即所有數(shù)的和 norm(x,2)方均根 norm(x,inf)取最大值 插值
v=polyinterp(x,y,u)(基于拉格朗日)可以計算xy組成的點陣插值結(jié)果,u為輸出v對應(yīng)的取得x 的值u=[,]完整次數(shù)插值 symx=sym(‘x’)創(chuàng)建符號變量
symx=polyinterp(x,y,symx)利用符號變量求解 pretty(p)讓p變得規(guī)整 simplify(p)化簡p v=piecelin(x,y,u)線性分段插值 v=pchip(x,y,u)v=pchiptx(x,y,u)為分段三次埃米特插值及其簡化版 v=spline(x,y,u)v=splinetx(x,y,u)為三次樣條插值及其簡化版 interpgui(x,y)可以繪制上述四種插值圖像,直觀 方程求根 【M=2 a=1 b=2 k=0;while b-a>eps x=(a+b)/2;if x^2 > M b=x else a=x end k=k+1;end】
牛頓法,求一次導(dǎo)法
k=0;x=10;/初值
xprev=12;/初值的初值
while abs(x-xprev)>eps*abs(x)xprev=x;
x=0.5*(x+2/x);/x-f(x)/ f(x)的導(dǎo)數(shù)。k=k+1;end
fzero(f(x),初值)/將二分法和割線法和IQI算法收斂速度結(jié)合 fzerotx(f(x),[,])簡化版本(fzerogui(f(x),[,]))
fmintx(f(x),a,b)ab為區(qū)間,求區(qū)間最小值
最小二乘法
b1= polyval(a1,x)將x值帶入方程a1 c=polyfit(x,y,n)將x,y帶入并用N次多項式擬合,輸出高次到第次。X = lsqcurvefit(FUN,X0,XDATA,YDATA)FUN:用于擬合的函數(shù) X0:迭代初始值
XDATA:要擬合的所有點的X的坐標 YDATA:要擬合的所有點的Y的坐標 最小二乘法手算公式在doc 11/13 f=inline('a(1)*x.^2+a(2)*x+a(3)','a','x')建立多元方程的簡便方法。ff=@(x,y)x^2+y^2;
積分:
y=quad(@aaa,0,1)辛普森法則應(yīng)用于0-1區(qū)間函數(shù)要加.y=quadtx(f,0,1)
簡化版 int(‘fun’,a,b)
>>int(sym('x^2'),0,1)直接出公式的,如果輸入數(shù)則出結(jié)果,輸入syms a b 則出公式 >diff('a*x^2',x)數(shù)值微分 diff(x^2,2)為二次導(dǎo)
ode23 顯示的龍格-庫塔公式 ode45 比較四階和五階的公式p9 歐拉法:
【其實就是循環(huán)語句構(gòu)成 X=(3:0.01:3.2);k=1:1:20;Y(k)=0;Y(1)=-1;for j=1:20 Y(j+1)=Y(j)+0.01*(X(j)^2+Y(j)^2);end plot(X,Y);】
[x,y]=ode23(ff,[x1,x2],y0)可以直接顯示出x和y的值 高階常微分解見第七章p19頂部和函數(shù)my fun3 邊界初值問題見p21底部
編程,繪圖,設(shè)置坐標軸,做出自己的坐標軸
1.axis([xminxmaxyminymax])
設(shè)置當(dāng)前圖形的坐標范圍,分別為x軸的最小、最大值,y軸的最小最大值
2.V=axis
返回包含當(dāng)前坐標范圍的一個行向量
3.axis auto
將坐標軸刻度恢復(fù)為自動的默認設(shè)置
4.axis manual
凍結(jié)坐標軸刻度,此時如果hold被設(shè)定為on,那么后邊的圖形將使用與前面相同的坐標軸刻度范圍
5.axis tight
將坐標范圍設(shè)定為被繪制的數(shù)據(jù)范圍
6.axis fill
這是坐標范圍和屏幕的高寬比,使得坐標軸可以包含整個繪制的區(qū)域。該選項只有在PlotBoxaApectRatio或DataAspectRatioMode被設(shè)置為‘manual’模式才有效
7.axisij
將坐標軸設(shè)置為矩陣模式。此時水平坐標軸從左到有取值,垂直坐標從上到下
8.axisxy
將坐標設(shè)置為笛卡爾模式。此時水平坐標從左到右取值,垂直坐標從下到上取值
9.axis equal 10.axis square
將坐標軸設(shè)置為正方形
11.axis normal
將當(dāng)前的坐標軸框恢復(fù)為全尺寸,并將單位刻度的所有限制取消
12.axis vis3d
凍結(jié)屏幕高寬比,使得一個三維對象的旋轉(zhuǎn)不會改變坐標軸的刻度顯示
13.axis off
關(guān)閉所有的坐標軸標簽、刻度、背景
14.axis on
打開所有的坐標軸標簽、刻度、背