當前位置:
首頁 > 最新 > MATLAB入門篇 數值類型

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:秦巴布衣清風徐來 |