MATLAB使用方法(不斷更新中……


文件操作

保存數據到文件中:
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 原來是倒數第二的意思 學到了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM