- MATLAB基礎及應用(第5版)
- 于潤偉 朱曉慧編著
- 2085字
- 2021-03-22 12:32:59
1.2 數據運算
1.2.1 變量

1.變量的命名
變量就是在程序運行過程中,其數值可以變化的數據。變量可代表一個或若干個內存單元(變量的地址)中的數據。為了對變量所對應的存儲單元進行訪問,需要給變量命名。在MATLAB中,變量名可以是由字母、數字或下畫線組成的字符序列,最多可包含 63 個字符,但第一個字符必須是字母。例如:myfile13、ab 1cd、EXAMPE等均為合法變量名,而 3dat、mydat、123.4 等都不是合法變量名。
在MATLAB中,變量名區分字母的大小寫,大小寫不同的兩個變量名被認為是兩個不同的變量。例如A1和a1是兩個不同的變量;另外,MATLAB不支持漢字,漢字不能出現在變量名和文件名中。
2.賦值語句
賦值語句的格式:

說明:表達式是用運算符把特殊字符、函數名、變量名等有關運算量連接起來的式子。執行后將右邊表達式的值賦給左邊的變量。如果缺省變量名,表達式的值賦給預定義變量ans。
賦值語句的運算結果能在命令行窗口中顯示,如果在語句的最后加分號,那么MATLAB僅執行賦值操作,不顯示運算的結果,以抑制不必要的信息顯示。如果運算的結果是一個很大的矩陣或根本不需要觀察運算結果,則可以在語句的最后加上分號。
如果表達式較長,在一行中放不下,則可以在行末輸入 3 個小黑點表示的續行符(…),指明下一行為續行。例如:

由于 “;” 的存在,計算結果s=0.6532并沒有顯示出來。如果續行符前面是數字,直接使用續行符會出現錯誤。有兩種解決方法:一種是再加一個點(共4個點),另一種是先空一格然后再加續行符。
3.預定義變量
在MATLAB工作空間中,還駐留幾個由系統本身定義的變量。它們有特定的含義,在使用時,應盡量避免對這些變量重新賦值。除前面出現過的ans外,還有一些常用的預定義變量,如表1-2所示。
表1-2 常用的預定義變量

如果自定義變量名與預定義變量名或內部函數名相同,那么在清除該自定義變量之前,相應的函數和預定義變量都無效。
請思考:與inf或nan運算,會得到什么結果?
1.2.2 常用數學函數
MATLAB提供了許多數學函數,函數的自變量規定為矩陣變量,運算規則是將函數作用于矩陣的每一個元素,因而函數運算結果是一個與自變量相同維數的矩陣。MATLAB的常用數學函數如表1-3所示。
表1-3MATLAB的常用數學函數

三角函數按弧度計算。另外,mod(x,y)與y符號相同,rem(x,y)與 x 符號相同;當x與y同號時,mod(x,y)等于rem(x,y)。
【例1-4】 計算3.14的余弦函數、自然對數、以e為底的指數、朝零方向取整和朝正無窮方向取整運算后的數值。
在命令行窗口輸入:


1.2.3 數據操作
1.input函數
MATLAB提供了一些輸入輸出函數,允許用戶通過計算機鍵盤與MATLAB進行數據交換。如果用戶想從鍵盤輸入數據,則可以使用input函數來進行。該函數的調用格式為:

說明:提示信息是一個字符串,用于提示用戶輸入什么樣的數據,字符串中若有 “\n”,則表示換行輸入。參數s表示允許用戶通過鍵盤輸入字符串;如果缺省 s,則只允許用戶輸入一個字符或數字。例如:

命令行窗口顯示如下:

命令行窗口顯示如下:

2.disp函數
MATLAB提供的命令行窗口輸出函數主要是disp函數,其調用格式為:

說明:其中輸出項既可以是用單引號括起來的數字、字符或字符串也可以是漢字,也可以是矩陣、變量。
例如輸出上例創建的字符矩陣a。

命令行窗口顯示如下:

用disp函數顯示矩陣時將不顯示矩陣的名字,而且其格式更緊密,不留沒有意義的空行。
請思考:如何在命令行窗口顯示自己的名字?
3.pause函數
當程序運行時,為了查看程序的中間結果或觀看輸出的圖形,有時需要暫停程序的執行。這時可以使用pause函數,其調用格式如下:

說明:n是一個常數,表示延遲多少秒。如果省略延遲時間,直接使用pause,則將暫停程序,直到用戶單擊任意鍵后程序繼續執行。若要強行中止程序的運行可使用〈Ctrl+C〉命令。
4.save命令
save命令是將MATLAB工作空間中的變量存入磁盤。其具體格式如下:

將當前MATLAB工作空間中所有變量以二進制格式存入名為matlab.mat(默認的文件名)的文件中,可在操作界面上工具欄旁的當前文件夾顯示的文件夾中,找到該文件。

將當前工作空間中的所有變量以二進制格式存入當前路徑下的文件dfile.mat中,擴展名mat自動產生。如果文件要保存在其他路徑,可在文件名前加上路徑。例如:在命令行窗口輸入save d:\example1,則將example1文件存在D盤根目錄下。

只把變量 a、b以二進制格式存入dfile.mat文件,擴展名自動產生。若存入多個變量,變量名之間用 “空格” 分隔。

將變量a以8位ASCII碼形式存入dfile.mat文件。

將變量a以16位ASCII碼形式存入dfile.mat文件。

fname是一個預先定義好的包含文件名的字符串,該用法將變量a以 ASCII 碼格式存入由fname定義的文件中。由于在這種用法中,文件名是一個字符變量,因此可以方便地通過編程的方法存儲一系列數據文件。
5.load命令
與save命令相對應,load函數是將磁盤上的數據讀入工作空間。其具體格式如下:

把磁盤文件matlab.mat(默認的文件名)的內容讀入內存,由于存儲.mat文件時已包含了變量名的信息,因此調回時已直接將原變量信息帶入,不需要重新賦值變量。

把磁盤文件dfile.mat的內容讀入內存。

fname是一個預先定義好的包含文件名的字符串,將由fname定義文件名的數據文件讀入變量x中,使用這種方法可以通過編程方便地調入一系列數據文件。
【例1-5】 定義3個變量a=2,b=4,c=6,全部存入一個文件中,再把 a、b存入另一個文件中;清空工作空間后,檢查工作空間,然后調入變量a,再檢查工作空間。

命令行窗口顯示如下:

- Adobe創意大學After Effects CS5 產品專家認證標準教材
- 持續演進的Cloud Native:云原生架構下微服務最佳實踐
- 零基礎玩轉AI繪畫
- 剪映專業版(電腦版)視頻剪輯全攻略:音效添加+轉場特效+視頻制作
- Photoshop CS6實戰從入門到精通(超值版)
- Premiere CC視頻編輯入門與應用
- ASP.NET Core 3從入門到實戰
- 抖音+剪映+Premiere短視頻制作從新手到高手(第2版)
- iPad Procreate風格繪畫之美
- 行攝 Photoshop CC后期修片高手之道(第2版)
- 中文版3ds Max 2022基礎教程
- 構筑敏捷的開發團隊:微軟Visual Studio 2010實戰兵法
- Photoshop海報設計技巧與實戰
- Building SOA/Based Composite Applications Using NetBeans IDE 6
- Final Cut Pro視頻后期剪輯零基礎入門到精通