MATLAB入門篇 數值類型
1.變數和常量
1》MATLAB中的變數無須事先定義,一個變數以其名稱在語句命令中第一次合法出現而定義,運算表達式中不允許出現未定義的變數,MATLAB會自動生成變數並根據變數的操作確定其類型。
好吧,我承認好繞,舉個栗子:
(什麼?想知道Line8-Line18什麼意思?以後再說,免得跑題)
上述代碼Run之後得圖如下:
細心的同學也許已經發現x1和x2是用長度不同的向量點乘得到的,多出來的那一段數據自動就補零了。當然,看不出來也沒關係,補一補課就好了。
2》變數名區分大小寫。
區分大小寫:C、C++、C#、MATLAB、Java、Python等
不區分大小寫:VB、Pascal、SQL、CMD等
3》變數名須以英文字母開始,之後可以用字母、數字和下劃線,但不能用空格和標點符號。
4》常量是指那些在MATLAB中已經預先定義其數值的變數,某些常量也可作為變數使用,如 i 既表示虛數單位,也可用作變數。
5》已經預定義的默認常量
pi:圓周率;
NaN或nan:不定值(0/0);
i或j:虛數單位√(-1);
INF或inf:無窮大;
eps:浮點數相對誤差;
ANS或ans:默認變數名,以應答最近一次操作運算結果。
6》變數的顯示
任何MATLAB執行結果只要行語句後面沒有「;」都能顯示在命令窗口上,未指定變數時,結果賦值給變數ans。
顯示格式-format命令:隻影響結果顯示,不影響其計算和存儲(雙精度浮點數)。Matlab中常用的顯示格式有:
(1)format (short):表示5位近似定點數
(2)format long:15位近似定點數
(3)format hex:十六進位表示
(4)format bank:銀行格式,固定元和分
(5)format rat:最小正數比例(分數)表示
7》變數存取
「save 」:將工作空間中全部變數存入「.mat」文件中去,省略文件名則默認文件名為「matlab.mat」。
「save 」:指出的變數存入「.mat」文件中去。
「load 」:將「.mat」文件中指出的磁碟中文件中的數據依次讀入名稱「」相同的工作空間中的變數中去,省略文件名則從默認文件名為「matlab.mat」中讀取數據。
2. 字元串
字元串作為字元數組用單引號(")引用到程序中,還可進行字元串運算,也可與數值進行轉化,或執行與字元串有關的操作。
3. 元胞數組
元胞數組是MATLAB中特有的一種數據類型,是數組的一種,其內部元素可以是屬於不同的數據類型,概念和c語言裡面的結構體很類似。
4. 架構數組
與建立數值型數組一樣,建立新struct對象不需要事先申明,可以直接引用,而且可以動態擴充。比如建立一個複數變數x:
x.real = 0; % 創建欄位名為real,並為該欄位賦值為0
x.imag = 0 % 為x創建一個新的欄位imag,並為該欄位賦值為0
則輸出:
x =
real: 0
imag: 0
然後可以將旗動態擴充為數組:
x(2).real = 0; % 將x擴充為1×2的結構數組
x(2).imag = 0;
在任何需要的時候,也可以為數組動態擴充欄位,如增加欄位scale:
x(1).scale = 0;
這樣,所有x都增加了一個scale欄位,而x(1)之外的其他變數的scale欄位為空:
x(1) % 查看結構數組的第一個元素的各個欄位的內容
則輸出:
ans =
real: 0
imag: 0
scale: 0
x(2) % 查看結構數組的第二個元素的各個欄位的內容,注意沒有賦值的欄位為空
則輸出:
ans =
real: 0
imag: 0
scale: []
應該注意的是,x的real、imag、scale欄位不一定是單個數據元素,它們可以是任意數據類型,可以是向量、數組、矩陣甚至是其他結構變數或元胞數組,而且不同欄位之間其數據類型不需要相同。例如:
clear x; x.real = [1 2 3 4 5]; x.imag = ones(10,10);
數組中不同元素的同一欄位的數據類型也不要求一樣:
x(2).real = "123";
x(2).imag = rand(5,1);
甚至還可以通過引用數組欄位來定義結構數據類型的某欄位:
x(3).real = x(1); x(3).imag = 3; x(3)
則輸出:
ans =
real: [1x1 struct]
imag: 3
下面看一個實際的例子來熟悉直接引用方式定義與顯示結構。
1》 溫室數據(包括溫室名、容量、溫度、濕度等)的創建與顯示。
(1) 直接對域賦值法產生結構變數
green_house.name = "一號溫室"; % 創建溫室名欄位
green_house.volume = "2000立方米"; % 創建溫室容量欄位
29.7 31.1 30.9 29.6];
62.0 61.9 59.2 57.5];
(2)顯示結構變數的內容
green_house % 顯示結構變數結構
green_house =
name: "一號溫室"
volume: "2000立方米"
parameter: [1x1 struct]
green_house.parameter % 用域作用符號. 顯示指定域(parameter)中內容
ans =
temperature: [2x4 double]
humidity: [2x4 double]
ans =
31.2000 30.4000 31.6000 28.7000
29.7000 31.1000 30.9000 29.6000
2》在上例的基礎上,創建結構數組用以保存一個溫室群的數據。
green_house(2,3).name = "六號溫室"; %產生2×3結構數組
green_house % 顯示結構數組的結構
green_house =
2x3 struct array with fields:
name
volume
parameter
green_house(2,3) % 顯示結構數組元素的結構
ans =
name: "六號溫室"
volume: []
parameter: []
秦巴布衣清風徐來
公眾號ID:還沒想好
關注
清風徐來 | 鬼見愁喬佳 | 喜歡文字的你
日常更新一些關於技術後沿和小眾文化的騷操作
TAG:秦巴布衣清風徐來 |