官术网_书友最值得收藏!

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,再檢查工作空間。

命令行窗口顯示如下:

主站蜘蛛池模板: 如东县| 惠州市| 泉州市| 宁阳县| 孙吴县| 石河子市| 仁布县| 钟祥市| 鄂托克旗| 连云港市| 乌鲁木齐市| 江门市| 河曲县| 宁远县| 新竹县| 张家港市| 上林县| 错那县| 深泽县| 固原市| 高密市| 隆子县| 临洮县| 北票市| 莒南县| 章丘市| 诏安县| 怀宁县| 江陵县| 布拖县| 西宁市| 松桃| 邳州市| 浮山县| 宿州市| 时尚| 新平| 资源县| 梨树县| 长治市| 夏河县|