Matlab基礎語法(上)
- 一、基知
- (一)界面介紹
- (二)常用快捷鍵
- (三)常用指令
- (四)Matlab幫助系統
- 二、運算基礎
- (一)變量
- (二)數據類型
- (三)基本運算符的使用
- (四)練習
- 三、矩陣基礎
- (一)矩陣的創建
- (1)直接輸入法
- (2)函數創建法
- (3)導入本地文件中的數據
- (二)矩陣的修改與刪除
- (三)矩陣的拼接重構重排
- 四、矩陣的運算
- (一)調用函數運算
- (二)算數運算
- (三)關系運算
一、基知
(一)界面介紹
(二)常用快捷鍵
快捷鍵 | 含義 |
---|---|
clear | 清空工作區 |
clc | 清空命令行 |
%%(后面加個空格) | 分節 |
ctrl+回車 | 只運行本節 |
F5 | 運行 |
ctrl+R | 注釋 |
ctrl+T | 取消注釋 |
ctrl+I | 智能縮進 |
ctrl+C | 終止死循環 |
strl+N | 新建.m文件 |
(三)常用指令
- 編輯器中
指令 | 含義 |
---|---|
clear | 清空工作區 |
clc | 清空命令行 |
另:寫在其中的每一行代碼尾加 ; 結果不會輸出到命令行窗口,不加會輸出
- 命令行窗口中
指令 | 含義 |
---|---|
help ___ | 調幫助文檔 |
↑ | 查看歷史指令 |
(四)Matlab幫助系統
-
在Matlab官網搜索(以sum函數為例)
MATLAB的幫助中心: https://ww2.mathworks.cn/help/index.html
-
使用help指令(以sum函數為例)
注:在有網絡和無網絡連接的情況下得到的信息可能會有差異
忠告:與同類軟件相比,MATLAB的幫助系統非常完善,大家在未來的學習中要要善于利用MATLAB的幫助文檔,去經常查閱
二、運算基礎
(一)變量
在MATLAB 中變量的命名應遵循如下規則:
- 變量名必須以字母開頭,之后可以是任意的字母、數字或下劃線。
- 變量名區分字母的大小寫,例如a和A代表不同的變量。
- 變量名不超過63個字符,第63個字符以后的字符將被忽略。
- 不能定義與 MATLAB關鍵字同名的變量(例如if或end)。要獲取關鍵字的完整列表,請在命令行輸入iskeyword 并運行。
- 特殊變量: ans、pi、inf(1/0)/-inf(正無窮大/負無窮大) 等
(二)數據類型
- 數字:整數和浮點數
- 字符與字符串:’ ’ 與 " "
- 矩陣:[ ]
(三)基本運算符的使用
針對數值、字符或者邏輯值
含義 | 符號 |
---|---|
加法 | + |
減法 | - |
乘法 | * |
除法 | / |
乘方 | ^ |
(四)練習
題目:對兩個字符變量做基本變量
ch1 = 'a';
ch2 = 'b';ch1 - ch2
三、矩陣基礎
(一)矩陣的創建
在MATLAB中,矩陣的創建方法主要有三種,分別是:直接輸入法、函數創建法和導入本地文件中的數據。
(1)直接輸入法
- 適用于矩陣中元素數量較少的情況。
- 輸入矩陣時要以中括號 ‘[ ]’ 作為標識符號,矩陣的所有元素必須都在中括號內。
- 矩陣的同行之間用
','
或' '
來分隔,不同行之間用';'
或'回車'
來分隔。
a = [1 2 3;4 5 6];
a = [1,2,3;4,5,6];
(2)函數創建法
MATLAB提供的用來生成某些特定的矩陣的函數,常用函數:
①zeros
、ones
和eye
。這三個函數分別用來創建全為0的矩陣、全為1的矩陣和單位矩陣。
例:
b = zeros(100);
c = zeros(100,99);
②rand
、randi
和randn
。這三個函數分別用來創建均勻分布的隨機數、均勻分布的隨機整數和標準正態分布的隨機數。
rand : 數的范圍在0~1
之間
randi : 數的范圍在imin~imax
之間
randn : 數
隨機取樣
至標準正態分布
d = rand(5,6); % 數的范圍在0~1之間
e = randi([1,6],1,20); % 數的范圍在imin~imax之間
f = randn(5,6); % 數隨機取樣至標準正態分布
(3)導入本地文件中的數據
MATLAB可讀取本地的文件,支持的常見格式如下
- txt、.dat或.csv(適用于帶分隔符的文本文件)
- xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx或.ods(適用于電子表格文件)
Step1: 在當前文件夾里面創建Excel表格,命名為data.xlsx
Step2: 導入數據
(二)矩陣的修改與刪除
(1)矩陣元素的修改:
①直接利用等號賦值的方法對矩陣中引用位置的元素進行修改
②使用線性索引(單下標的索引)的方式對矩陣的元素進行修改
注=:如果你在賦值時將一個或多個元素置于矩陣現有的行和列索引的邊界之外,則會將矩陣的大小進行拓展,MATLAB 會將沒有賦值的位置的元素白動用0填充,使其保持為完整的矩形。
A = [1:4;2:5;3:6]
A(2,:) = 10 % 改第二行全部
A([1,3],[1,2]) = 0 % 改(1,1)、(1,2)、(3,1)、(3,2)
A(4) = 10 % 線性索引,這里即改(1,2)A(5,6) = 888 % 添加的時候超邊了會進行拓展
(2)矩陣元素的刪除:
如果我們將等號右側變成空向量[ ]
,則可以刪除對應位置的元素。需要注意的是,通常只能刪除矩陣的整行或者整列,否則會報錯。
也可以通過線性索引來刪除矩陣的元素。使用線性索引刪除后
,MATLAB會將矩陣中剩下的元素
按照線性索引的順序放入到一個向量中
。另外,使用線性索引可以刪除任意位置的元素,不需要刪除矩陣的一整行或者一整列。
A(:,[1,end]) = [] % 刪除第1列和最后一列的元素
A(1) = [] % 線性索引才可刪除單個元素,但矩陣會變成向量
(三)矩陣的拼接重構重排
(1)矩陣的拼接:
- 橫向拼接:A和B的行數相同,那么使用
[A,B]
、[A,B]
以及cat(2,A,B)
都能將 A和 B橫向拼接成一個大的矩陣 - 縱向拼接:A和B的列數相同,那么使用
[A;B]
以及cat(1,A,B)
都能將A和B縱向拼接成一個大的矩陣。
A = [1:4;2:5;3:6]
B = ones(3,2)
C = [A B]
A = [1:4;2:5;3:6]
B2 = ones(2,4)
B3 = ones(3,4)
D = [A;B2;B3]
(2)矩陣的重構重排:
①reshape函數
:更改矩陣的形狀
(reshape(A,m,n)可把n寫成[ ],讓系統自己推算)
A = randi(10,2,6)
B = reshape(A,3,[]) % 先取第1列,再取第2列……,即A(:)==B(:)
②sort 函數
:對向量或者矩陣進行排序,sort(A,dim),在最后面加一個輸入參
數’descend’,變成從大到小的降序排列
- dim = 1 時,沿著行方向(從上至下)對矩陣的每一列升序排列
- dim = 2 時,沿著列方向(從左至右)對矩陣的每一行升序排列
A = randi(10,2,6)
sort(A,1)
sort(A,2)
sort(A,1,'descend')
③sortrows函數
:基于矩陣的某一列對矩陣進行排序,同一行的元素不會改變
sortrows(score,列),在最后面加一個輸入參數’descend’,變成從大到小的降序排列
就是我們要更改之后的大小
A = randi(10,2,6)
sortrows(A,2,'descend')
四、矩陣的運算
(一)調用函數運算
例:
A = randi(10,3,4)sum(A,1) % 計算每一列的和
sum(A,2) % 計算每一行的和
sum(A(:)) % ==sum(sum(A))==sum(A,"all") 將A這個指針變成一個向量,計算總和
prod(A,"all")
(二)算數運算
(1)加減:
五種算數運算兼容模式,按對應位置元素運算
(2)乘除乘方:
* 和 .*
分別表示線代中的矩陣相乘和兩個矩陣中對應元素相乘
A = randi(10,3,4)
B = randi(10,4,4)
A*B
C = randi(10,3,4)
D = randi(10,1,4)
C.*D
/(右除)、\(左除)和 ./
^ 和 .^ (冪運算、乘方)
A2 = randi(10,3,3)
A2 ^ 3 % == A * A * A
(3)轉置 '(默認將復數變成共軛復數)和 .'
B = [1 2 3+i;2-i 2 3]
B'
B.'
(三)關系運算
關系運算符可以用來比較兩個數組中元素的關系,如果比較的結果為真,則MATLAB 會返回邏輯值1;如果結果為假,則會返回邏輯值0。
A = [1:4] %先會給自己疊三行
B = ones(3,4)
A == B
完