按一下以編輯母片標題樣式,按一下以編輯母片文字樣式,第二層,第三層,第四層,第五層,*,*,MATLAB,介紹,MATLAB介紹,導論,MATLAB,是一項,資料分析,與,視覺化,的工具,,強力支援矩陣與矩陣運算。,MATLAB,具有,優異的繪圖,(2D,、,3D,),能力,,與獨特的,程式語言,能力。,為何,MATLAB,會成為影像處理工具,,其中一個理由便是具有影像處理相關處理程序所需之影像處理工具箱,(,IPT,),。,導論MATLAB是一項資料分析與視覺化的工具,強力支援矩陣與,Matlab,介面,Matlab介面,介面說明,Workspace,:,顯示目前工作環境內定義的變數,Command Window,:,就如同一個文字操作介面,有,提示號,在提示號之後輸入指令,Command History,紀錄曾經下過的指令,介面說明Workspace:,介面說明,(cont.),Current Directory Window,預設路徑,C:Users.DocumentsMATLAB,當你的圖片檔案或,M,檔案至於此路徑時,,使用時只需呼叫檔名,不必給予檔案路徑。,介面說明(cont.)Current Directory W,指令操作,在,command window,輸入指令,按下,Enter,就執行計算並且顯示答案,Matlab,不在乎空格,ex:2*3-4,等同於,2*3-4,變數分大小寫,ex:imre,不等同於,IMRE,指令操作在command window輸入指令,MATLAB,基本用法,基本運算與函數,在,MATLAB,下進行基本數學運算,(+,、,-,、,*,、,/,、,),,只需將運算式直接打入提示號(,)之後,並按入,Enter,鍵即可。例如:,2+2 ans=4,若想改變輸出格式可使用,format,函數。例如:,format long%,顯示格式可取至雙精度浮點數,11/7ans=,1.571428571428571format,內建基礎數學函數。例如:,sqrt(2)sin(pi/8),log(10),MATLAB基本用法基本運算與函數,MATLAB,常用的基本數學函數,abs(x),:純量的絕對值或向量的長度,sqrt(x),:開平方,r,round(x),:四捨五入至最近整數,fix(x),:無論正負,捨去小數至最近整數,floor(x),:地板函數,即捨去正小數至最近整數,ceil(x),:天花板函數,即加入正小數至最近整數,sign(x),:符號函數,(Signum function),。當,x0,時,,sign(x)=1,。,rem(x,y),:求,x,除以,y,的餘數,gcd(x,y),:整數,x,和,y,的最大公因數,lcm(x,y),:整數,x,和,y,的最小公倍數,exp(x),:自然指數,pow2(x),:,2,的指數,(2,X,),log(x),:以,e,為底的對數,即自然對數,log2(x),:以,2,為底的對數,log10(x),:以,10,為底的對數,MATLAB常用的基本數學函數 abs(x):純,MATLAB,常用的三角函數,sin(x),:正弦函數,cos(x),:餘弦函數,tan(x),:正切函數,asin(x),:反正弦函數,acos(x),:反餘弦函數,atan(x),:反正切函數,atan2(x,y),:四象限的反正切函數,sinh(x),:雙曲線正弦函數,cosh(x),:雙曲線餘弦函數,tanh(x),:雙曲線正切函數,asinh(x),:反雙曲線正弦函數,acosh(x),:反雙曲線餘弦函數,atanh(x),:反雙曲線正切函數,MATLAB常用的三角函數sin(x):正,變數與工作空間,變數命名的規則,第一個字母必須是英文字母,其後可以是字母,、,數字,、,底線,(_),任意組合,,,字母間不可留空格,。,最多只能有,63,個字母,,MATLAB,會忽略多餘字母,例如,:,a=5 (7/2)a=,279.5085,變數與工作空間變數命名的規則,變數與工作空間,工作空間可列出目前所有定義了的變數,、,數據資料型態以及位元組大小,。,(View,選單,),另可在命令視窗使用,whos,函數取得相同資訊。,變數與工作空間工作空間可列出目前所有定義了的變數、數據資料型,純量,、,向量與矩陣,MATLAB,中有許多產生與處理矩陣的指令,。,在資料形式有時會稱之為,純量,、,向量與矩陣,,但,MATLAB,都會將其視為矩陣資料,。,純量為,1X1,陣列類型,向量為一維陣列類型,矩陣為二維或更高維度陣類型,純量、向量與矩陣MATLAB中有許多產生與處理矩陣的指令。,矩陣元素,矩陣產生方式,,首先可以將矩陣一列一列鍵入,使用空白或逗號分隔,分號用來隔列。例如:,a=4-2-4 7;1 5-3 2;6-8-5-6;-7 3 0 1,a=,4 -2 -4 7,1 5 -3 2,6 -8 -5 -6,-7 3 0 1,矩陣元素矩陣產生方式,首先可以將矩陣一列一列鍵入,使用空白或,矩陣元素,矩陣元素存取,-,使用標準列,,,行的索引方式取得,。例如:,a(2,3)%,取得第,2,列第,3,行的元素,MATLAB,也可使用單一索引數字求得矩陣元素。例如:,a(10)%,取得原矩陣,a(2,3),之元素。,一個,r,列,c,行的矩陣,M,,元素,m(i,j),可對應位置為,m(i+r*(j-1),。,矩陣元素矩陣元素存取-使用標準列,行的索引方式取得。例如,矩陣元素,使用單一索引一次存取好幾個矩陣元素,:,a(1 6 11 16),MATLAB,的冒號,(,:,),運算子,產生一整列的數值,稱之為數值向量。例如:,a,:,b%,可產生由,a,到,b,所有整數,也可使用,冒號,(,:,),運算子產生一等差數列。,a,:,i,:,b%,可產生由,a,增加,i,到,b,所有整數,我們也可利用,linspace,來產生任意的等差數列:,x=linspace(4,10,6)%,等差數列:首項為,4,末項為,10,項數為,6,x=4.0000 5.2000 6.4000 7.6000 8.8000 10.0000,矩陣元素使用單一索引一次存取好幾個矩陣元素:a(1 6,矩陣元素,可將上面冒號運用在,矩陣元素存取,。,a(2,1:3),a(2:4,3),a(2:3,3:4),a(3,:),a(:,2),a(:)%,鍵入冒號可將二維矩陣,(,依逐行方式,),形成一行向量顯示,矩陣元素可將上面冒號運用在矩陣元素存取。a(2,1:3),矩陣元素,end,函數表示陣列元素索引之最大值,。,例如,:,v(end:1)%,反轉向量值,v(end:-2:1)%,表示由最後一個元素開始顯示,,,每次遞減,2,,,直到第一個元素停止,。,a(end,end),a(end,end-2),a(2:end,end:-2:1),使用向量來當一個矩陣的索引,E=a(1 3,2 3),矩陣元素end函數表示陣列元素索引之最大值。例如:,矩陣運算,MATLAB,支援所有標準矩陣運算,,矩陣可相加、相減、相乘或反轉,也可取矩陣的次方。,b=2 4-7-4;5 6 3-2;1-8-5-3;0-6 7-1,b=,2 4 -7 -4,5 6 3 -2,1 -8 -5 -3,0 -6 7 -1,例如,:2*a 3*b,矩陣運算MATLAB支援所有標準矩陣運算,矩陣可相加、相減、,矩陣運算,Operator Name Comments and Examples,+Array and matrix addition a+b,A+B,or a+A.,Array and matrix subtraction a b,A B,A a,.,.*Array multiplication Cv=A.*B,C(I,J)=,A(I,J)*B(I,J).,*Matrix multiplication A*B,standard matrix,multiplication.,./Array right division C=A./B,C(I,J)=,A(I,J)/B(I,J).,.Array left division C=A.B,C(I,J)=,B(I,J)/A(I,J).,/Matrix right division A/B is the preferred way,to compute A*inv(B).,矩陣運算Operator Name,矩陣運算,Operator Name Comments and Examples,Matrix left division AB is the preferred way to,compute inv(A)*B.,.Array power If C=A.B,then C(I,J)=,A(I,J)B(I,J).,.matrix transpose A.,standard matrix transpose.,matrix transpose A,standard matrix transpose.,+Unary plus +A is the same as 0+A.,Unary minus A is the same as 0 A or 1*A.,矩陣運算Operator Name,矩陣運算,反矩陣函數,inv,inv(a),矩陣轉置,a,矩陣上下顛倒,flipud,及左右顛倒,fliplr,flipud(a),fliplr(a),若要重新安排矩陣的形狀,可用,reshape,命令:,reshape(a,2,8),矩陣運算反矩陣函數inv,點運算子,點運算子主要使矩陣運算看成陣列之運算,例如,:,a=1 2;3 4,b=2 3;4 5,a.*b%,產生,a,與,b,對應元素相乘,ans=,2 6,12 20,點運算子點運算子主要使矩陣運算看成陣列之運算,建構矩陣,我們可以透過將所有元素列出的方式建構矩陣,。,不過,,,有些特殊矩陣可使用,MATLAB,內部函數建立,,如全部是,0,或,1,的矩陣,可由,zeros,與,ones,產生。例如:,zeros(n),zeros(m,n),zeros(a),亂數矩陣可以使用,rand,與,randn,產生。,rand,產生的區間為,0,1,的平均分佈矩陣,randn,產生的平均值為,0,,標準差為,1,的常態分佈矩陣,floor(10*rand(3),floor(100*randn(3,5),建構矩陣我們可以透過將所有元素列出的方式建構矩陣。不過,有些,建構矩陣,函數,meshgrid,可以自動產生,2D,或,3D,笛卡兒空間,rows cols=meshgrid(1:10,1:10),函數,size,可以求得矩陣維度的大小,size(a),建構矩陣函數meshgrid可以自動產生2D或3D笛卡兒空間,If Else,用法,:if(True or False),計算,end,ex:if(isempty(t),t=0;,End,用法:,if(True_or_False),計算,else,計算,end,If Else用法:if(True or False),switch,用法,:switch(switch_expr),case case_expr_1,statement1,otherwise,statement1,end,ex:switch (value),case 1,3,5,7,9,disp(the value is odd.);,case 2,4,6,8,10,disp(the value is even.);,otherwise,disp(the value is out of range.);,end,switch用法:switch(switch_expr),For loop,用法:,for,變數,=,向量或序列,計算,end,ex:for i=1:100,ex:for i=1:,2,:100,y(i)=2;s=s+i;,End end,ex:for