文件操作
保存數據到文件中:
save filename
清除workspace中數據:
clear
清除command window:
clc
從文件中讀取數據:
load filename (不用后綴)
查看workspace里的數據:
data(變量名)
保存部分變量:
save 變量名
加載部分變量:
load 變量名
關閉MATLAB時,工作區將被清除。MAT文件可用於保存變量。當您重新打開MATLAB時,這些變量就可以被加載到工作區中。
小數位數顯示
默認為4位小數
輸入 format long
再輸入x
精確到15位小數
輸入 format short
恢復默認
創建腳本(一次進行多項指令)
方法是在MATLAB編輯器中創建一個臨時腳本
單擊“New Live Script"(新建實時腳本)
在灰色代碼框中輸入命令
還可以切換到文本模式以添加一點說明(LIVE EDITOR中的Text)
通過點擊“運行”(Run)按鈕一次按順序運行所有指令
輸出會顯示在右側的窗格中
可以點右邊的按鈕改變輸出的布局(右側/下方)
點結果會標示生成該結果的命令,反之亦然
可將腳本分為多個部分,以便每次只運行一部分代碼
要運行單個節,點擊"Run Section"(運行節)按鈕
可將腳本共享給其他MATLAB用戶,或保存為靜態PDF/HTML文檔
Layout中選擇多種布局
Section Break用來在其后斷開,對腳本中不同代碼分塊
數據類型及不同定義方式
MATLAB中變量均以數組(array)形式保存,類型有:
matrix 矩陣
column vector 列向量
row vector 行向量
scalar 標量(實際上是1*1的數組)
定義有多個數的數組可以用中括號括起來
若不同數之間用空格或逗號隔開,則為行向量
若不同數之間用分號隔開,則為列向量
定義矩陣:同一行中的數用逗號或者空格,上一行最后一個數與下一行第一個數之間用分號
這些中括號中的組成數組的數可以為表達式,它會自動算,以結果形式保存
定義包含連續自然數的數組:輸入一頭一尾,中間為冒號,可以不用中括號
這種方法默認兩數間隔為1
自定間隔的方法:第一個數:間隔:最后一個數
如果你知道的是這個數組中數字的數量,而非兩數的間隔,用linspace函數:
linspace(first,last,number_of_elements) 注意有逗號 不用中括號
這些方法默認得到行向量,使用轉置變為列向量: x = x’
或者在初始化構成的時候就在外面加小括號,右括號后加單引號
矩陣操作
隨機數矩陣:rand(x) 表示創建一個x*x的每個數都是隨機數的矩陣(范圍(0,1))
rand(x,y) x行y列的隨機數矩陣
零矩陣:zeros 用法與rand相同
單位矩陣:ones 用法與rand相同
eye:主對角線為1,其余位置為0
size(x)得出矩陣x的行數與列數,eg:
y = size(x),則y為一個1*2矩陣(行向量),第一個數為x的行數,第二個數為x列數,無論x的行數列數是否相同
也可以保存為2個值 [xrow,xcol] = size(x)
可以創建與x大小相同的矩陣,如rand(size(x))
Indexing(索引)
用來提取和修改數組中的值
行/列向量:一個索引值x(idx)
x(3)
x(2:4)
矩陣:x(row,col)
x(1,3)
x(1,:) //整個第一行
x(:,3) //整個第三列
注:1.可以用end代表最后一行或最后一列,如y=A(end,2),(end-1)等表達式也都合法
運算符號
數組+-*/常數
相同大小數組相加
相同大小數組相乘:不能用*,要用.* (a行c列*c行b列 得a行b列)
對整個數組也有效的函數
max/min函數整個數組范圍內取最大/最小值
也可以得出2個值,記錄索引 [xMax,idx] = max(x)
若只想得出第二個值,第一個值用~代替 [~,ivMax]
(關於記錄索引的似乎不能用矩陣)
sqrt 每個元素開方
round 每個元素四舍五入(到個位)
PLOT函數(畫圖)
兩個相同長度的向量可以使用plot函數相互繪制
plot(sample,mass1)說明sample在x軸上繪制,mass1在y軸上繪制
plot畫圖還可以(x,y,"r-o"),將繪制一條紅色(r)虛線(--)並以圓(o)作為標記
(You can learn more about the symbols available in the documentation for Line Specification.)
請注意,每個plot命令都創建了一個單獨的plot,要在一條線上繪制另一條線,請在添加另一條線的同時使用“hold on”命令
plot(x1,y1)
hold on
plot(x2,y2)
解除:hold off
若plot中只放了一個向量:自動看作y坐標,x坐標由1~n
plot(y,"LineWidth",5)(參考:documentation for Line Properties.)
可以在行說明符之后向plot函數提供其他輸入:plot(x,y,"ro-","LineWidth",5)
TITLE函數(添加標題)
title(字符串) 給圖表加題目,注意字符串用雙引號表示
title("fsjs")
遇到新函數
通過點擊”幫助“ 進入 MATLAB文檔 點入function或直接搜索(更高效)
或者直接再COMMAND WINDOW中輸入:doc 某函數 ,可直接跳出結果(最最最高效)
Randi函數(隨機數)
這里節選一種用法:
X = randi(imax,sz1,...,szN) returns an sz1-by-...-by-szN array where sz1,...,szN indicates the size of each dimension. For example, randi(10,3,4) returns a 3-by-4 array of pseudorandom integers between 1 and 10.
rref函數
求簡化階梯矩陣(row reduced echelon form)
rref(B)
MATLAB中導入文件
選擇該文件,並點擊“導入數據”(Import Data)
或直接雙擊它
雙擊mat文件,其中變量值被導入工作區中
雙擊jpg文件,她將以像素值數組的形式導入
雙擊文本文件(txt)或電子表格(csv),會找導入工具(Import Tool),並生成數據預覽,要導入的數據以藍色突出顯示,文本文件中的任何缺失數據以橙色突出顯示,且在默認情況下被替換為NaN,默認情況下,導入工具以表的形式導入此數據
調整Output Type
關於表(TABLE)
要從表中提取變量,可以使用點表示法(dot notation):
data.VariableName
如果使用表,則可能需要將相關數據保存在一起。可以將計算結果分配給表,而不是創建單獨的變量:
data.HeightMeters = data.HeightYards*0.9144
elements.Mass = elements.Density.*elements.Volume1
通過點擊表中變量,選擇排列方式(通常是由小到大or由大到小)
若想固定這個排序(永久保存),輸入一行:
elements = sortrows(elements,'Mass')
點表示法用於提取表變量。要提取行,可以使用常規數組索引:
提取table的前三行:top3 = elements(1:3,:)
注意此時top3也是table
邏輯索引
關系運算符(如<,>,<=,>=,==,~=(不等於)):
對兩個值進行比較,結果為1(true)或0(false)
矩陣/向量與一個值進行比較,相當於其中每個值都與該值比較,結果的數組大小與原來矩陣/向量大小相同
使用邏輯數組作為數組索引,在這種情況下會提取所有索引為真的數組元素:
v = v1(v1>6)
也可以對兩個不同向量進行邏輯索引:
v = sample(v1 > 6)
利用邏輯索引更改變量值:
例如將所有值為99的元素值改為1 :v1(v1<4)=0
也可使用與(&)/或(|)運算:
x = v1(v1<4 & v1>2)
x = v1(v1>6 | v1<2)
判斷結構
if
else if
else
end
循環結構
for x = 1:5
end
但若循環中計算較簡單,可能不需要使用for循環:
x = 1:5
xSq= x.^2
利用MATLAB處理數組的自然性,可以使用MATLAB數組功能
學到的英語(???)
in that order 原來就是”按順序“的意思 學到了
the second to last 原來是倒數第二的意思 學到了