




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第2章章 MATLAB語言基礎語言基礎矩陣矩陣 數組數組第第2章章 MATLAB語言基礎語言基礎l2.1 變量及其賦值變量及其賦值l2.2 向量及其運算向量及其運算l2.3 數組及其運算數組及其運算l2.4 矩陣及其運算矩陣及其運算l2.5 函數與表達式函數與表達式l2.6 MATLAB數據類型數據類型2.1變量及其賦值變量及其賦值2.1.1 變量命名規則變量命名規則l變量名只能由字母、數字和下劃線組成,且必須以變量名只能由字母、數字和下劃線組成,且必須以字母開頭;字母開頭;l變量名區分字母的大小寫;變量名區分字母的大小寫;l變量名不能超過最大長度限制(變量名不能超過最大長度限制(63個字符
2、);個字符);l關鍵字不能作為變量名,如關鍵字不能作為變量名,如for、end和和if等;等; 注意:存變量命名時應盡量避開注意:存變量命名時應盡量避開MATLAB中預定義中預定義的變量。的變量。MATLAB預定義變量預定義變量預定義變量變量的含義變量的含義ans運算結果的缺省變量名運算結果的缺省變量名eps計算機中的最小數。當某量的絕對值小于計算機中的最小數。當某量的絕對值小于eps時,可認為此時,可認為此量為零量為零flops浮點運算數浮點運算數Inf或或inf正無窮大,由零做除數所引入的常量,如正無窮大,由零做除數所引入的常量,如1/0i或或j虛數單位虛數單位i=j=(-1)1/21/2
3、NaN或或nan表示非數值,如表示非數值,如0/0,inf/inf,0*inf,inf-inf等等nargin函數的輸入變量數目函數的輸入變量數目nargout函數的輸出變量數目函數的輸出變量數目Realmax或或realmax最大正實數最大正實數Realmin或或realmin最小正實數最小正實數pi圓周率圓周率2.1.2 變量賦值變量賦值l賦值語句的一般形式為:賦值語句的一般形式為: 變量變量=數據(或表達式)數據(或表達式)例子a=1,b=2,c=a2+3*b+1 %命令間用逗號間隔,回車后命令窗口顯示為:命令間用逗號間隔,回車后命令窗口顯示為:a=1b=2c=8a=1;b=2; c=a
4、2+3*b+1 %前兩條語句加上分號,回車后命令窗口顯示為:前兩條語句加上分號,回車后命令窗口顯示為:c=8 %加了分號的語句的運行結果不再顯示在命令窗口中加了分號的語句的運行結果不再顯示在命令窗口中a %但可以通過直接輸入變量名查看變量的取值但可以通過直接輸入變量名查看變量的取值a=1a=4 a=4 %當變量再次被賦值時,新值代替舊值當變量再次被賦值時,新值代替舊值注意:標點符號必須在英文狀態下輸入注意:標點符號必須在英文狀態下輸入 。2.2 向量及其運算向量及其運算2.2.1向量的生成向量的生成l直接輸入法直接輸入法 :生成行向量的格式:向量名生成行向量的格式:向量名=a1,a2,a3,生
5、成列向量的格式:生成列向量的格式:向量名向量名=a1;a2;a3;或對行向量取轉置:向量名或對行向量取轉置:向量名=a1,a2,a3,l冒號表達式法冒號表達式法 : 向量名向量名=a1:step:a2 其中其中a1為向量的第一個元素,為向量的第一個元素,a2為最后一個元素,為最后一個元素,step為變化步長,省略時,默認為為變化步長,省略時,默認為1。例子l 例例2-2 直接法生成向量直接法生成向量a=1,2,2,3a = 1 2 2 3l例例2-3a=1:2:10,b=1:5a = 1 3 5 7 9 %注意:用冒號表達式法生成向量時,最后一個元素不一定是注意:用冒號表達式法生成向量時,最后
6、一個元素不一定是a2b = 1 2 3 4 5l組合法組合法 : 一個向量和數值或另一向量(同為行或列向量)組一個向量和數值或另一向量(同為行或列向量)組合在一起,構成一個新的向量合在一起,構成一個新的向量 。llinspace()函數或函數或logspace( )函數生成向量法:函數生成向量法:linspace(a,b,n):產生首尾元素分別為:產生首尾元素分別為a和和b,長度為,長度為n的等差行向量。當的等差行向量。當n省略時,默認省略時,默認n=100。logspace(a,b,n):產生首尾元素分別為:產生首尾元素分別為10a和和10b,長度為長度為n的對數等分行向量。當的對數等分行向
7、量。當n省略時,默認省略時,默認n=50;當當b=pi時,在時,在10a pi區間產生長度為區間產生長度為n的對數等分的對數等分行向量。行向量。l同維向量的加減同維向量的加減 l數與向量的加減乘除數與向量的加減乘除(/) l向量的點積向量的點積點積運算函數點積運算函數dot(A,B) :維數相同的向量:維數相同的向量A和和B各對應位置上元素相乘后的和,其結果是一各對應位置上元素相乘后的和,其結果是一個標量。個標量。即若向量即若向量A=(a1,a2,a3),向量,向量B=(b1,b2,b3),(AB)=a1b1+a2b2+a3b3 2.2.2向量的運算向量的運算l 向量的叉積向量的叉積 叉積運算
8、函數叉積運算函數cross(A,B)。結果是一個過兩向。結果是一個過兩向量交點且垂直于兩個向量所在平面的向量。量交點且垂直于兩個向量所在平面的向量。 即若向量即若向量A=(a1,a2,a3),向量,向量B=(b1,b2,b3),(AB)=(a2b3-b2a3,a3b1-a1b3,a1b2-a2b1)。叉。叉積運算要求積運算要求A和和B必須是三元素的向量必須是三元素的向量 l 向量的混合積向量的混合積 運算格式為運算格式為dot(A,cross(B,C):是指先叉乘后:是指先叉乘后再點乘再點乘2.2.2向量的運算向量的運算a=1 2 3;b=4:6;c=linspace(7,10,4);d=1
9、4 6;d=a+b, e=a-cd = 5 7 9? Error using = minusMatrix dimensions must agree. % 表明表明e=a-c運算中運算中a與與c的維數不同,使運算出錯的維數不同,使運算出錯f=a+1,g=b-1f = 2 3 4g = 3 4 5 h=3*a, k=4*bh = 3 6 9k = 16 20 24dot(a,b)ans = 32 cross(a,b) ans = -3 6 -3 dot(a,cross(b,d)ans = 01-3. 如何在幫助窗口、幫助命令、幫助演示中查找如何在幫助窗口、幫助命令、幫助演示中查找plot的相的相
10、關指令和演示程序?關指令和演示程序?2-2. 生成兩個四維向量生成兩個四維向量(1 0 -2 3)和和(0 1 2 1),計算它們的和、,計算它們的和、點積。點積。3.比較比較logspace(a,b,n)命令在參數命令在參數a、b位置處采用位置處采用pi的區別的區別上機練習:4.比較數與向量之間比較數與向量之間“/”、”的區別的區別5.思考如何求兩個向量之間的夾角思考如何求兩個向量之間的夾角數組和矩陣的有關知識數組和矩陣的有關知識2011.5.132.3 數組及其運算數組及其運算2.3.1 數組的創建數組的創建l直接輸入法直接輸入法整個數組放在整個數組放在“ ”內;數組元素以內;數組元素以逗
11、號或空格逗號或空格隔開;隔開;行與行之間用行與行之間用分號分號或回車鍵或回車鍵隔開;行內元素也可采隔開;行內元素也可采用冒號表達式法生成。用冒號表達式法生成。 如果數組中的元素都是復數,也可以先產生實部和如果數組中的元素都是復數,也可以先產生實部和虛部的數組,然后再將虛部的數組,然后再將實部數組實部數組+虛數單位虛數單位*虛部數虛部數組組,得到復數數組,得到復數數組 。l函數法函數法l函數法函數法 函數函數語法語法說明說明eyeeye(n); eye(m,n);生成單位數組生成單位數組onesones(n); ones(m,n);生成元素全為生成元素全為1的數組的數組randrand(n);
12、rand(m,n);生成均勻分布的隨機數組生成均勻分布的隨機數組randnrandn(n); randn(m,n);生成正態分布的隨機數組生成正態分布的隨機數組zeroszeros(n); zeros(m,n);生成全零數組生成全零數組catcat(dim,A,B)按指定維方向串接數組按指定維方向串接數組diagdiag(v); diag(v,k);diag(A); diag(A,k);求對角線元素或對角矩陣求對角線元素或對角矩陣flipudflipud(A)以數組水平中線為對稱軸,交換上下對以數組水平中線為對稱軸,交換上下對稱位置上的數組元素稱位置上的數組元素fliplrfliplr(A)以
13、數組垂直中線為對稱軸,交換左右對以數組垂直中線為對稱軸,交換左右對稱位置上的數組元素稱位置上的數組元素repmatrepmat(A,m,n)按指定維上的數目復制數組按指定維上的數目復制數組reshapereshape(A,m,n)按指定的行和列重新排列數組按指定的行和列重新排列數組rot90rot90(A); rot90(A,k)逆時針旋轉數組逆時針旋轉數組90度的整數倍度的整數倍triltril(A); tril(A,k);提取數組下三角部分,生成下三角矩陣提取數組下三角部分,生成下三角矩陣triutriu(A); triu(A,k);提取數組上三角部分,生成上三角矩陣提取數組上三角部分,生
14、成上三角矩陣例:例: 直接輸入法創建數組直接輸入法創建數組 A=1 2 3 4;5 6 7 8,B=1 2+i 3i 4,C=9:12;1:2:5 21,D=A+i*CA = 1 2 3 4 5 6 7 8B = 1.0000 2.0000 + 1.0000i 0 + 3.0000i 4.0000 C = 9 10 11 12 1 3 5 21D = 1.0000 + 9.0000i 2.0000 +10.0000i 3.0000 +11.0000i 4.0000 +12.0000i 5.0000 + 1.0000i 6.0000 + 3.0000i 7.0000 + 5.0000i 8.00
15、00 +21.0000i找出需要被操作的元素。找出需要被操作的元素。lA(r,c):表示數組:表示數組A的第的第r行第行第c列的元素。列的元素。lA(r,:):表示數組:表示數組A的第的第r行元素。行元素。lA(:,c):表示數組:表示數組A的第的第c列的元素。列的元素。lA(s):把數組:把數組A的所有列按先左后右的次序,首尾連的所有列按先左后右的次序,首尾連接成一個序列后,由上到下的第接成一個序列后,由上到下的第s個元素。個元素。 注意:注意:MATLAB是按照列的先后順序存放的是按照列的先后順序存放的。2.3.2 數組的尋址數組的尋址例:例: 數組的尋址數組的尋址A=randn(3,4)
16、,a=A(1,3),b=A(2,:),c= (A(:,3),d=A(10)A = -1.3362 -0.6918 -1.5937 -0.3999 0.7143 0.8580 -1.4410 0.6900 1.6236 1.2540 0.5711 0.8156a = -1.5937b = 0.7143 0.8580 -1.4410 0.6900c=-1.5937 -1.4410 0.5711d =-0.3999 主要包括加主要包括加(+)、減、減(-)、乘、乘(.*)、除、除(./和和.)、冪運算、冪運算(.)、 指數運算指數運算(exp)、對數運算、對數運算(log)和開方運算和開方運算(sq
17、rt)等。等。 2.3.3 數組的代數運算數組的代數運算l例:數組的代數運算例:數組的代數運算lA=1 2 3;4 5 6;B=1 3 4;2 5 6;lE=A.*B,F=A./B,H=A.2,I=exp(A), K=sqrt(A)lE =l 1 6 12l 8 25 36lF =l 1.0000 0.6667 0.7500l 2.0000 1.0000 1.0000lH =l 1 4 9l 16 25 36lI =l 2.7183 7.3891 20.0855l 54.5982 148.4132 403.4288lK =l 1.0000 1.4142 1.7321l 2.0000 2.236
18、1 2.4495 按元素來比較相同規格數組(行、列數相同)或按元素來比較相同規格數組(行、列數相同)或比較數組與標量。比較數組與標量。運算符運算符函數函數說明說明運算符運算符函數函數說明說明 =ge大于或等于大于或等于= gt大于大于=ne不等于不等于2.3.4 數組的關系運算數組的關系運算例:例: 數組的關系運算數組的關系運算A=1 3;2 0;B=4 2;2 -1;C=(AB),D=le(A,B),E=(A=B)C = 0 1 0 1D = 1 0 1 0E = 1 1 0 1邏輯邏輯運算運算相應的邏輯相應的邏輯運算函數運算函數邏輯運算符邏輯運算符說明說明與與and& &
19、能實現所有的邏輯與運算能實現所有的邏輯與運算數組對應元素或兩標量同為非零時返回數組對應元素或兩標量同為非零時返回1 1;否則返;否則返回回0 0& & 只能用于標量之間只能用于標量之間或或or| | 能實現所有的邏輯或運算能實現所有的邏輯或運算數組對應元素或兩標量同為零時返回數組對應元素或兩標量同為零時返回0 0;否則返回;否則返回1 1| | 只能用于標量之間只能用于標量之間非非not 實現所有的非運算實現所有的非運算數組元素或標量為非零時返回數組元素或標量為非零時返回0 0,否則返回,否則返回1 1異或異或xor沒有相應的運算符沒有相應的運算符數組對應元素或兩標量只有一個非
20、零時返回數組對應元素或兩標量只有一個非零時返回1 1,否,否則返回則返回0 02.3.5 數組的邏輯運算數組的邏輯運算例:例: 數組的邏輯運算數組的邏輯運算A=1 0 0;2 3 4;B=0 1 3;0 1 2;C=A&B,D=or(A,B),E=(A)C = 0 0 0 0 1 1D = 1 1 1 1 1 1E = 0 1 1 0 0 02.4 矩陣及其運算矩陣及其運算 2.4.1 矩陣創建矩陣創建l直接法直接法l函數法函數法 l變換法變換法 函數函數語法語法說明說明hadamardhadamard(n)生成生成n階階hadamard矩陣,其中矩陣,其中n滿足滿足rem(n,4)=
21、0。hankelhankel(c); hankel(c,r);生成第一行和第一列都為生成第一行和第一列都為c,或第一列為,或第一列為c和最后一行為和最后一行為r的的hankel矩陣矩陣hilbhilb(n)生成生成n階階hilbert矩陣矩陣invhilbinhilb(n)生成生成n階逆階逆hilbert矩陣矩陣magicmagic(n)生成生成n階魔方矩陣,其中階魔方矩陣,其中n0且且n2pascalpascal (n); pascal (n,1); pascal (n,2)生成滿足指定要求的生成滿足指定要求的n階階pascal矩陣矩陣toeplitztoeplitz(r);toeplitz
22、 (c,r)生成第一行和第一列都是生成第一行和第一列都是r,或第一列為,或第一列為c和第一行為和第一行為r的的toeplitz矩陣矩陣wilkinsonwilkinson(n)生成生成n階階J. H. Wilkinsons特征值測試矩陣特征值測試矩陣l 特殊矩陣生成函數特殊矩陣生成函數知識概要:l復數數組(或矩陣)的創建方法l函數法生成特殊數組(或矩陣)函數zeros、ones、eyes、rand、randn、magic、hadamard;diag、reshape、flipud、fliplr、(cat)l數組(或矩陣)元素的訪問方式l數組的代數運算、關系運算、邏輯運算2-3. 生成一個生成一個
23、44的正態分布隨機數組,求其對角線元素的的正態分布隨機數組,求其對角線元素的和,并將該數組變換成和,并將該數組變換成28的數組。的數組。上機練習二:1、求向量求向量(1 0 0)和向量(和向量(2.5 2.5 0)之間的夾角之間的夾角c2-1. 定義變量定義變量a為二階全零陣,訪問其第一行第二列的為二階全零陣,訪問其第一行第二列的元素,并將值修改為元素,并將值修改為2。2、使用、使用help命令查找命令查找diag(A,k)命令結果)命令結果6、查找、查找rem和和mod函數的區別函數的區別2-4. 生成一個生成一個35的均勻分布隨機數組,將其第的均勻分布隨機數組,將其第4列元素加列元素加0.
24、2,并將數組元素與并將數組元素與0.5比較大小。比較大小。矩陣運算和MATLAB數據類型矩陣加、減(矩陣加、減(,)運算)運算規則:規則: 相加、減的兩矩陣必須有相同的行相加、減的兩矩陣必須有相同的行和列兩矩陣對應元素相加減。和列兩矩陣對應元素相加減。 允許參與運算的兩矩陣之一是標量。允許參與運算的兩矩陣之一是標量。標量與矩陣的所有元素分別進行加標量與矩陣的所有元素分別進行加減操作。減操作。2.4.2 矩陣的運算矩陣的運算2. 矩陣乘(矩陣乘( )運算運算規則:規則:lA矩陣的列數必須等于矩陣的列數必須等于B矩陣的行數矩陣的行數l標量可與任何矩陣相乘。標量可與任何矩陣相乘。a=1 2 3;4
25、5 6;7 8 0;b=1;2;3;c=a*bc =14 32 23 d=-1;0;2;f=pi*df = -3.1416 0 6.2832 l 矩陣的除法矩陣的除法 左除左除AB=inv(A)*B,是方程,是方程Ax=B的解;的解; 右除右除A/B=A*inv(B),是方程,是方程xB=A的解。的解。l 矩陣的乘方和開方矩陣的乘方和開方 乘方利用符號乘方利用符號“”實現,開方利用函數實現,開方利用函數sqrtm實現實現 l 矩陣的指數和對數矩陣的指數和對數 expm、logmlinv 矩陣求逆矩陣求逆ldet 行列式的值行列式的值leig 矩陣的特征值矩陣的特征值 x,lamda=eig(A
26、)lrank 矩陣的秩矩陣的秩ltrace 矩陣的跡矩陣的跡l 矩陣的共軛轉置矩陣的共軛轉置5. 矩陣的其它運算 6.矩陣的一些特殊操作l矩陣的變維矩陣的變維 a=1:12;b=reshape(a,3,4) c=zeros(3,4);c(:)=a(:)l矩陣的變向矩陣的變向 rot90:旋轉; fliplr:左右翻; flipud:上下翻l矩陣的抽取矩陣的抽取 tril: 抽取主下三角;triu:抽取主上三角l矩陣的擴充和收縮矩陣的擴充和收縮 A=1 3 5;2 4 6;1 -4 -8 a=det(A)a = -2 B=AB = 1 2 1 3 4 -4 5 6 -8 C=inv(A)C =
27、4.0000 -2.0000 1.0000 -11.0000 6.5000 -2.0000 6.0000 -3.5000 1.0000 r=rank(A)r = 3 d=trace(A)d = 3 x,lamda=eig(A)x = -0.5101 -0.2904 -0.3914 -0.8250 0.8430 -0.3976 0.2433 -0.4528 0.8299lamda = 3.4672 0 0 0 0.0880 0 0 0 -6.5552數學函數數學函數 類型類型函數函數含義含義類型類型函數函數含義含義三角函三角函數數sin正弦正弦復數函數復數函數abs絕對值和復數模絕對值和復數模a
28、sin反正弦反正弦angle復數的相角復數的相角cos余弦余弦real復數的實部復數的實部acos反余弦反余弦imag復數的虛部復數的虛部tan正切正切conj求共軛復數求共軛復數atan反正切反正切complex構造復數構造復數cot余切余切isreal判斷實數判斷實數acot反余切反余切指數函數指數函數exp以以e為底的指數為底的指數sec正割正割log自然對數自然對數asec反正割反正割log2以以2為底的對數為底的對數csc余割余割log10以以10為底的對數為底的對數acsc反余割反余割pow22的冪的冪取整函取整函數數ceil+取整取整sqrt平方根平方根floor- 取整取整求余
29、函數求余函數mod模除求余模除求余fix向向0取整取整rem求余數求余數round四舍五入四舍五入為整數為整數其它其它lcm求最小公倍數求最小公倍數sign符號函數符號函數gcd求最大公約數求最大公約數名稱名稱標點標點作用作用空格空格分隔輸入量;分隔同行數組元素分隔輸入量;分隔同行數組元素逗號逗號,作為要顯示結果的指令的結尾;分隔同行數組元素作為要顯示結果的指令的結尾;分隔同行數組元素分號分號;作為不顯示結果的指令的結尾;分隔數組的行作為不顯示結果的指令的結尾;分隔數組的行冒號冒號:用作生成向量;用作下標時表示該維上的所有元素用作生成向量;用作下標時表示該維上的所有元素注釋號注釋號%其后內容為
30、注釋其后內容為注釋單引號單引號標識字符和字符串標識字符和字符串圓括號圓括號()()訪問數組元素時用訪問數組元素時用方括號方括號 輸入數組時用輸入數組時用花括號花括號 用作細胞數組標識用作細胞數組標識續行號續行號長指令分成兩行或多行輸入時的標識長指令分成兩行或多行輸入時的標識符號的作用符號的作用l逗號和分號的作用逗號和分號的作用 逗號和分號可作為指令間的分隔符,逗號和分號可作為指令間的分隔符,matlab允允許多條語句在同一行出現。許多條語句在同一行出現。 分號如果出現在指令后,屏幕上不顯示結果分號如果出現在指令后,屏幕上不顯示結果。注意:只要是賦過值的變量,不管是否在屏幕上顯示,注意:只要是賦
31、過值的變量,不管是否在屏幕上顯示,都存儲在工作空間中,以后可隨時顯示或調用。都存儲在工作空間中,以后可隨時顯示或調用。變量名變量名盡可能不要重復,否則會覆蓋盡可能不要重復,否則會覆蓋 。當一個指令或矩陣太長。當一個指令或矩陣太長時,可用時,可用續行。續行。l冒號的作用冒號的作用 用于生成等間隔的向量,默認間隔用于生成等間隔的向量,默認間隔1。 用于選出矩陣指定行、列及元素。用于選出矩陣指定行、列及元素。 循環語句循環語句2.5 函數與表達式函數與表達式l函數函數系統內部函數和用戶自定義函數系統內部函數和用戶自定義函數 2.5 函數與表達式函數與表達式l表達式表達式(按照優先級的先后順序執行;如
32、果優先級相同,(按照優先級的先后順序執行;如果優先級相同,要按先左后右的順序執行。)要按先左后右的順序執行。)括號括號()()共軛轉置共軛轉置、轉置、轉置.、矩陣乘方、矩陣乘方 、數組乘方、數組乘方.代數代數+ +、代數、代數- -、邏輯非、邏輯非 矩陣乘矩陣乘* *、矩陣左除、矩陣左除 、矩陣右除、矩陣右除/ /、數組乘、數組乘. .* *、數組左除數組左除.、數組右除、數組右除././加加+ +、減、減- -冒號運算符冒號運算符: :小于小于 、小于等于、小于等于= 、大于等于、大于等于=、等、等于于= = 、不等于、不等于=邏輯與邏輯與& &邏輯或邏輯或| |標量與標量與
33、&標量或標量或|2.6 MATLAB數據類型數據類型2.6.1 基本數據類型基本數據類型l數值型數值型整數:整數:有符號整數(有符號整數(int)無符號整數(無符號整數(uint)。)。浮點數:浮點數:單精度浮點數(單精度浮點數(float)雙精度浮點數(雙精度浮點數(double)。)。默認的數據類型是雙精度浮默認的數據類型是雙精度浮點數。點數。 MATLAB的整數類型的整數類型 數據類型取值范圍轉換函數有符號8位整數-27 27-1int8有符號16位整數-215 215-1int16有符號32位整數-231 231-1int32有符號64位整數-263 263-1int64無符號
34、8位整數0 28-1uint8無符號16位整數0 216-1uint16無符號32位整數0 232-1uint32無符號64位整數0 264-1uint64注意:整數數據之間進行運算,注意:整數數據之間進行運算,必須保證它們具有相同的類型必須保證它們具有相同的類型 與數值型數據類型有關的函數與數值型數據類型有關的函數函數函數功能功能語法語法who顯示當前工作空間中所有內存變量的名稱顯示當前工作空間中所有內存變量的名稱whowhos顯示變量的維數、字節數和數據類型顯示變量的維數、字節數和數據類型whos 變量名變量名class顯示變量的數據類型顯示變量的數據類型class (變量名變量名)isi
35、nteger驗證變量是否為整數驗證變量是否為整數,結果返回結果返回1或或0isinteger(變量變量)intmax查詢不同整型所能表示的最大整數查詢不同整型所能表示的最大整數intmax(整型數據類型名整型數據類型名)intmin查詢不同整型所能表示的最小整數查詢不同整型所能表示的最小整數intmin(整型數據類型名整型數據類型名)isnumeric驗證變量是否為數值型驗證變量是否為數值型isnumeric(變量變量)double將數據轉換成雙精度浮點型將數據轉換成雙精度浮點型double(變量變量)single將數據轉換成單精度浮點型將數據轉換成單精度浮點型single(變量變量)isfl
36、oat驗證變量是否為浮點型驗證變量是否為浮點型isfloat(變量變量)isa驗證輸入變量是否為指定的數據類型驗證輸入變量是否為指定的數據類型isa(變量變量,數據類型數據類型)realmax查詢單精度和雙精度所能表示的最大浮點數查詢單精度和雙精度所能表示的最大浮點數realmax(double或或single)realmin查詢單精度和雙精度所能表示的最小浮點數查詢單精度和雙精度所能表示的最小浮點數realmin(double或或single)例:數值型數據類型的轉換例:數值型數據類型的轉換a=123.4,b=int8(a),c1=isinteger(a),c2=isnumeric(a),d
37、=double(b),e=single(d),f=isa(e,dou .ble)運算結果為a =123.4000,b=123,c1=0,c2=1,d=123,e=123,f=0whos Name Size Bytes Class a 1x1 8 double array b 1x1 1 int8 array c1 1x1 1 logical array c2 1x1 1 logical array d 1x1 8 double array e 1x1 4 single array f 1x1 1 logical array class(a),class(b),m1=intmax,m2=intm
38、in(int64),m3=realmax(single),m4=realmin(double)運算結果為double, int8, m1=2147483647, m2=-9223372036854775808, m3=3.4028e+038, m4=2.2251e-308。函數函數size(x)可以查詢變量可以查詢變量x的尺寸;的尺寸;比如說一個比如說一個A是一個是一個34的二維矩陣:的二維矩陣:size(A) %直接顯示出直接顯示出A大小大小 輸出:輸出:ans= 3 4 s=size(A)%返回一個行向量返回一個行向量s,s的第一個元素是矩陣的的第一個元素是矩陣的行數,第二個元素是矩陣的列
39、數行數,第二個元素是矩陣的列數 輸出:輸出:s= 3 4 r,c=size(A)%將矩陣將矩陣A的行數返回到第一個輸出變量的行數返回到第一個輸出變量r,將矩陣的列數返回到第二個輸出變量將矩陣的列數返回到第二個輸出變量c 輸出:輸出:r= 3 c= 4其它有關函數其它有關函數r,c,m=size(A) 輸出:輸出:r= 3 c= 4 m= 1也就說它把二維矩陣當作第三維為也就說它把二維矩陣當作第三維為1的三維矩陣,的三維矩陣,當當a是一個是一個n維行向量時,維行向量時,size(A)把其當成一個)把其當成一個1n的矩陣,因此的矩陣,因此size(a)的結果是)的結果是 ans 1 nsize(A
40、,n)n=1或或2,則則 size將返回矩陣的行數或列數。其中將返回矩陣的行數或列數。其中r=size(A,1)該語句返回的是矩陣該語句返回的是矩陣A的行數,的行數, c=size(A,2) 該語句返回的是矩陣該語句返回的是矩陣A的列數的列數函數函數length(x)如果如果x為非空數組,返回行數和列數兩者之間數值為非空數組,返回行數和列數兩者之間數值較大的那一個值,即相當于執行了較大的那一個值,即相當于執行了max(size(x);如果如果x為空數組,則返回為空數組,則返回0;如果如果x是一個向量則返回是一個向量則返回x的長度。的長度。函數函數size(x)可以查詢變量可以查詢變量x的尺寸;
41、的尺寸;函數函數length(x)相當于相當于max(size(x),返回各維中維數最,返回各維中維數最大的數值;大的數值;函數函數ndims(x)返回變量的維數,相當于返回變量的維數,相當于length(size(x);函數函數nnz(x)返回返回x中非零元素的個數;中非零元素的個數;函數函數nonzeros(x)返回一個由返回一個由x的非零元素構成的列向量,的非零元素構成的列向量,即即length(nonzeros(x)=nnz(x)。其中。其中x可以各種類型量。可以各種類型量。其它有關函數其它有關函數例:例: 查詢變量的尺寸查詢變量的尺寸 size(randn(2,3) %返回隨機矩陣的
42、尺寸返回隨機矩陣的尺寸ans = 2 3 a,b=size(randn(1,3) %將隨機矩陣的行值賦給變量將隨機矩陣的行值賦給變量a,列值賦給變量,列值賦給變量ba = 1b = 3 size(randn(3,4),1) %返回指定維上隨機矩陣的尺寸返回指定維上隨機矩陣的尺寸ans = 3 length(randn(3,4) %返回隨機矩陣各維中最大的值返回隨機矩陣各維中最大的值ans = 4 ndims(randn(3,4) %返回隨機矩陣的維數返回隨機矩陣的維數ans = 2 A=1 2 0 1;0 -1 0 2 nnz(A) %返回返回A中非零元素的個數中非零元素的個數ans = 5
43、nonzeros(A) %返回返回A中的非零元素中的非零元素ans = 1 2 -1 1 2函數函數logical:將其它類型數組轉換成邏輯類型數:將其它類型數組轉換成邏輯類型數組,其中非零元素為真,零元素為假;組,其中非零元素為真,零元素為假;函數函數true:產生指定維數的邏輯真值數組;:產生指定維數的邏輯真值數組;函數函數false:產生指定維數的邏輯假值數組。:產生指定維數的邏輯假值數組。函數函數islogical:判別數據是否是邏輯型的:判別數據是否是邏輯型的。 邏輯型邏輯型例:邏輯型數據的有關運算例:邏輯型數據的有關運算A=randint(2,3),B=logical(A),C=t
44、rue(size(A),D=false(2,3)A = 1 1 1 0 0 1B = 1 1 1 0 0 1C = 1 1 1 1 1 1D = 0 0 0 0 0 0 a=true,b=flase,c=islogical(A),d=islogical(B)結果顯示a=1,b=0,c=0,d=1whos B Name Size Bytes Class B 2x3 6 logical arrayGrand total is 6 elements using 6 bytes可見邏輯型數組的每一元素占用1個字節 2.6.2 字符串字符串l字符串的定義字符串的定義直接輸入法直接輸入法冒號表達式法冒號表
45、達式法組合法組合法函數法函數法注意:若字符串中存在單引號,需要在輸入字注意:若字符串中存在單引號,需要在輸入字符串內容時,連續輸入兩個單引號。符串內容時,連續輸入兩個單引號。 例:例: 生成字符串生成字符串str1=Heibei University,str2=of, ,Science, ,and, ,T,e,c,h,n,o,l,o,g,y %直接輸入法str1 =Heibei Universitystr2 =of Science and Technology str=str1, ,str2 %組合法Heibei University of Science and Technologystr3
46、=Dont you? %字符串中有單引號str3 =Dont you?str4=a:2:z %冒號表達式法str4 =acegikmoqsuwystr5=char(MATLAB,基礎,與應用) %函數法str5 =MATLAB基礎 與應用 l查詢字符串的長度查詢字符串的長度函數函數size:以向量的形式返回各維的維數;:以向量的形式返回各維的維數;函數函數length:返回各維中維數最大的數值。:返回各維中維數最大的數值。例:例: 查詢上例中字符串查詢上例中字符串str的長度的長度a1=size(str) ,a2=length(str)a = 1 43a2=43l字符串的操作字符串的操作字符串
47、的水平合并:字符串的水平合并:將字符串依次放在將字符串依次放在“ ”中,并用空格或逗中,并用空格或逗號隔開;號隔開;調用函數調用函數 strcat。字符串的垂直合并:字符串的垂直合并:將字符串依次放在將字符串依次放在“ ”中,并用分號隔開,中,并用分號隔開,如長度不等,必須用空格補齊。如長度不等,必須用空格補齊。調用函數調用函數 strvcat。字符串操作函數表字符串操作函數表函數函數功能功能ischar判別變量是否是字符型判別變量是否是字符型blanks(n)返回包含有返回包含有n個空格的字符串個空格的字符串deblank(str)刪除字符串中的空格刪除字符串中的空格findstr(str1
48、,str2)在在str1中查找中查找str2lower(str)轉換成小寫轉換成小寫upper(str)轉換成大寫轉換成大寫strcmp(str1,str2)比較比較str1和和str2,相等返回,相等返回1,不等返回,不等返回0strrep(str1,str2,str3)用用str3替代替代str1中所有的中所有的str2strcmpi(str1,str2)忽略大小寫比較忽略大小寫比較str1和和str2strncmpi(str1,str2,n)比較比較str1和和str2的前的前n個字符個字符strmatch(str1,str2)從從str2的各行中查詢以的各行中查詢以str1開頭的行號開
49、頭的行號strjust(str,style)str按按style(取(取left、right或或center)進行左對齊、)進行左對齊、右對齊或居中右對齊或居中strtok(str)返回返回str中第一個分隔符(空格、回車或中第一個分隔符(空格、回車或tab鍵)鍵)前的部分前的部分例:例: 字符串間的操作字符串間的操作 str1=Good Morning ;str2=Good Morning,Sir;str3=Good Afternoon; s1=deblank(str1), s2=findstr(str2,str1),s3=findstr(str2,s1),s4=lower(s1),s5=u
50、pper(str3)s1 =Good Mornings2 = s3= 1s4 =good morning s5 =GOOD AFTERNOON s6=strcmp(str1,s1), s7=strncmpi(str1,s1,12), s8=strrep(str2,s1,str3), s9=strmatch(s1,str2)s6 = 0s7 = 1s8 =Good Afternoon,Sirs9 = 1 s10=strjust(str1,center)s10 = Good Morning s11=strjust(str1,right)s11 = Good Morning s12=strjust(
51、str1,left)s12 =Good Morning l字符串與數值數組的轉換字符串與數值數組的轉換 字符型轉換函數 函數函數功能功能用法用法abs字符串轉換成字符串轉換成ASCII碼碼abs(字符串字符串)double字符串轉換成字符串轉換成ASCII碼碼double(字符串字符串)char通過通過ASCII碼把任意類型數據轉換碼把任意類型數據轉換成字符串成字符串char(數據量數據量)num2str將非整數數組轉換成字符串將非整數數組轉換成字符串num2str(數值數組數值數組,有效有效數位數位)int2str將整數數組轉換成字符串將整數數組轉換成字符串int2str(整數數組整數數組)
52、mat2str將數值數組轉換成字符行向量將數值數組轉換成字符行向量mat2str(數值數組數值數組,有效有效數位數位)str2num將字符數組轉換成數值數據將字符數組轉換成數值數據str2num(字符數組字符數組)例例:字符串與其它類型數組的轉換字符串與其它類型數組的轉換 str1=Heibei University;b=abs(str1),c=double(str1),d=char(b)b = Columns 1 through 9 72 101 105 98 101 105 32 85 110 Columns 10 through 17 105 118 101 114 115 105 11
53、6 121c = Columns 1 through 9 72 101 105 98 101 105 32 85 110 Columns 10 through 17 105 118 101 114 115 105 116 121d =Heibei UniversityA=randn(2,4),B=int2str(A),C=num2str(A,4) ,D=mat2str(A,3), E=str2num(D);A = -0.6918 1.2540 -1.4410 -0.3999 0.8580 -1.5937 0.5711 0.6900B =-1 1 -1 0 1 -2 1 1C =-0.6918
54、1.254 -1.441 -0.3999 0.858 -1.594 0.5711 0.69D =-0.692 1.25 -1.44 -0.4;0.858 -1.59 0.571 0.69E = -0.6920 1.2500 -1.4400 -0.4000 0.8580 -1.5900 0.5710 0.6900 class(A),class(B),class(C),class(D),class(E)得到結果依次是double、char、char、char和double。l細胞數組的創建細胞數組的創建 用花括號用花括號 直接賦值生成細胞數組直接賦值生成細胞數組 :例例:a=his score,M
55、ATLAB,90,筆試45;上機45a = his score MATLAB 90 2x4 char注意:對于內容較多的細胞,顯示的是細胞的字節數和數據注意:對于內容較多的細胞,顯示的是細胞的字節數和數據類型。類型。函數函數cell創建細胞數組創建細胞數組 ,調用格式為:調用格式為:cell(m,n) 2.6.3 細胞數組細胞數組細胞數組的基本元素是細胞細胞數組的基本元素是細胞(cell),每個細胞可以存儲,每個細胞可以存儲不同類不同類型、不同維數型、不同維數的數據的數據. la=cell(2);a1,1=class1;a1,2=no0823101;a2,1=name mary; a2,2=E
56、nglish 85;Computer 90la = l class 1 no 0823101l name mary 2x11 charl細胞數組的訪問細胞數組的訪問圓括號訪問:得到的數據仍然是細胞數組;圓括號訪問:得到的數據仍然是細胞數組;花括號訪問:得到的是細胞元素的內容,是字符型的。花括號訪問:得到的是細胞元素的內容,是字符型的。 例: 對上例中創建的細胞數組a進行訪問 b=a(2,2) %圓括號訪問b = 2x11 char class(b)ans =cell %b為細胞型 c=a2,2 %花括號訪問c =English 85 Computer 90 class(c)ans =char
57、%c為字符型l 細胞數組的擴充、收縮和重組細胞數組的擴充、收縮和重組例:對上例中的細胞數組a進行擴充、收縮和重組 a1,3=, a3,1=age 20 %擴充a = class1 no0823101 name mary 2x11 char age 20 a(:,2)= %收縮a = class1 name mary age 20 reshape(a,2,3) %重組ans = class1 age 20 name mary l細胞數組的其它操作細胞數組的其它操作MATLAB提供的主要細胞數組運算函數提供的主要細胞數組運算函數 函數函數功能功能celldisp(c)顯示細胞數組顯示細胞數組c的內
58、容的內容cellplot(c)顯示細胞數組顯示細胞數組c的結構圖的結構圖iscell(c)查詢查詢c是否是細胞數組是否是細胞數組iscellstr(c)查詢查詢c是否是字符型細胞數組是否是字符型細胞數組cellfun應用于細胞數組中的各個細胞元素應用于細胞數組中的各個細胞元素 cellstr(s)用字符數組用字符數組s的的行向量作為細胞構成細胞數組的的行向量作為細胞構成細胞數組char(c)細胞數組細胞數組c中的細胞作為行向量構成字符數組中的細胞作為行向量構成字符數組mat2cell(A,m,n)將普通數組將普通數組A按照指定的按照指定的m和和n參數轉換成細胞數組參數轉換成細胞數組cell2m
59、at(c)將細胞數組將細胞數組c轉換成普通數組轉換成普通數組num2cell(A,dim)將數組數組將數組數組A按照指定維方向按照指定維方向dim(1是行、是行、2是行、是行、3是頁,并且是頁,并且3種種方向還可以組合起來,如方向還可以組合起來,如1,2,dim缺省時,把數組的每一元素都缺省時,把數組的每一元素都轉化成細胞數組的一個細胞)轉換成細胞數組轉化成細胞數組的一個細胞)轉換成細胞數組例:細胞數組的相關運算例:細胞數組的相關運算A=randn(2,2),random number,2;i,pi,eye(3) %產生細胞數組AA = 2x2 double random number 2 0
60、+ 1.0000i 3.1416 3x3 double celldisp(A) %顯示細胞數組A A1,1 = -1.1465 1.1892 1.1909 -0.0376A2,1 = 0 + 1.0000iA1,2 = random numberA2,2 = 3.1416A1,3 = 2A2,3 = 1 0 0 0 1 0 0 0 1cellplot(A) %顯示細胞數組顯示細胞數組A的結構圖的結構圖 iscell(A) %判別判別A是否是細胞型是否是細胞型ans = 1 iscellstr(A) %判別判別A是否是字符細胞型是否是字符細胞型ans = 0B=cellfun(length,A), B = 2 13 1 1 1 3 A=English
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安郵電大學《雅思英語閱讀與寫作(上)》2023-2024學年第二學期期末試卷
- 神木職業技術學院《雕塑基礎》2023-2024學年第二學期期末試卷
- 江陽城建職業學院《數字設備與裝備》2023-2024學年第一學期期末試卷
- 山東省萊州市一中2024-2025學年高三數學試題第四次聯考試題含解析
- 遼寧傳媒學院《地質工程》2023-2024學年第二學期期末試卷
- 泉州幼兒師范高等專科學校《金融工程》2023-2024學年第二學期期末試卷
- 神木職業技術學院《生態環境保護基礎》2023-2024學年第二學期期末試卷
- 因狗咬傷賠償協議書模板.二零二五年
- 二零二五版成都存量房屋買賣合同書
- 二零二五版論行政合同書特權的法律規制
- 碧螺春的主要制作工藝
- 北京版數學五年級下冊分數通分100題及答案
- 學弈 全國公開課一等獎
- NBT47013渦流檢測通用工藝規程
- 2024年陸上石油天然氣開采安全管理考試題庫附答案
- 學校宿舍家具采購投標方案技術標
- 北師大版 數學 二年級下冊 單元測試卷
- 提姆與莎蘭的小木屋
- 工會會計賬務處理智能系統
- 低代碼行業供需現狀與發展戰略規劃ppt
- 差異表達基因分析5趨勢性上調和下調基因分析6基因集功
評論
0/150
提交評論