MATLAB教程(1) MATLAB 基础知识
初學。去年看過一點點MATLAB,很久不用,遺忘驚人。為了加深自己的印象,扎實基礎,現將官網上的基礎教程做簡單的翻譯。
首先,以下從九個部分簡單介紹基礎入門知識。
第一部分:MATLAB顯示桌面的基本布局
https://cn.mathworks.com/help/matlab/learn_matlab/desktop.html
1.啟動MATLAB后,桌面會顯示默認布局,主要有以下三個部分:
- 當前文件夾
- 命令行窗口
- 工作空間
2.在MATLAB中一般需要創建變量和調用函數。
直接在命令行中輸入變量名以及其值即可(比如:a = 1),多個變量的創建同理,不再贅述。
需要注意的是,如果沒有定義輸出變量,MATLAB會使用一個名為ans的變量來儲存計算結果。
3.如果語句以分號結束,表示MATLAB內部會執行這一運算,但是命令行不對計算結果進行輸出。
第二部分:矩陣和數組
https://cn.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html
大多數的編程語言一次性只能對一個數進行操作,而MATLAB主要被用來對整個矩陣或者數組進行操作。不管是什么類型的數據,所有的額MATLAB變量都是數組。矩陣是常用于線性代數的二維數組。
1.數組的創建
- 在一個單行中創建一個擁有四個元素的數組,其各個元素之間用逗號或者空格隔開。
例如:
a = [1 2 3 4]
這種數組叫做單行矩陣(行向量)。 - 創建一個多行矩陣,其各個行之間用分號隔開。
例如:
b = [1,2;3,4;5,6] - 還可以用函數來創建矩陣。
例如:創建一個5行1列每一個元素都是0的列向量。
z = zero(5,1)
2.矩陣和數組的操作
- 在MATLAB中,允許用一個單一的運算或者函數對矩陣中所有的數據進行處理(操作)。
例如:
如果要對矩陣進行轉置,則使用單引號(‘)
例如:a’
可以通過執行標準矩陣乘法,通過*運算符來計算內積。
這是我自己的結果截圖……很明顯是不對滴~
然后下面是官網爸爸給的運行結果。
我們都知道,一個矩陣與它的逆矩陣相乘的結果的確應該等于單位矩陣。至于這里為什么不對,還希望各位大佬們能不吝賜教,大恩不言謝~
這里要注意的是,p不是一個整數值矩陣,MATLAB存儲數字是以浮點型存儲的,真實值和它的浮點數在運算時有小小的不同,我們可以使用格式化命令,顯示更多的小數位數。
比如:
format long
p = a*inv(a)
可以使用format short來重置到較短格式的使用。
- x = a.*a用來表示對矩陣的每一個元素做平方操作。
若需要對每一個元素做立方運算,則用x = a.^3(如圖)
矩陣的擴充
行方向上:A = [a,a]
列方向上:A = [a; a]復數
復數由實部和虛部組成,它的虛部是-1的平方根。
即sqrt(-1) = 0.0000 + 1.0000i
一般用i或者j來代表復數的虛部部分。
第三部分:數組的索引
https://cn.mathworks.com/help/matlab/learn_matlab/array-indexing.html
MATLAB中的每一個變量都是可以存儲多個值的數組。如果想要使用數組中的某一個值,則需要用到索引。
1.單個元素的索引
從一個數組中索引某個元素一般有兩種方法:
第一種比較常見:數組名加要索引的元素所在的行和列,例如A(2,4) = 8。
第二種不太常用:數組名加一個下標,該下標按列遍歷。A(14) = 8?!具@里不太好表達,上圖吧~】
再多說一句,其實A(14)中的14表示按列數第14個元素!
利用下標索引元素這種方式叫做線性索引。
注意:如果索引超出矩陣維度,MATLAB會報錯。
2.多個元素的索引
引用數組的多個元素,使用冒號操作符m : n(m,n分別表示索引開始和結束的范圍)
例1索引第二列第1個元素到第3個元素。
例2索引第三行全部元素
不難發現,索引行則將行數放在逗號前;索引列要將列數放在逗號后。
另外,冒號運算符也可以幫助創建一組等距的矢量值,例如:
B = 0:10:100
—->B = 0 10 20 30 40 50 60 70 80 90 100
輸出一個從0到100步長為10的數組。
第四部分:工作空間變量
https://cn.mathworks.com/help/matlab/learn_matlab/workspace.html
工作區包含你創建的變量或者從數據文件或其他程序導入到MATLAB中的變量。例如,我現在創建兩個變量 :
A = magic(4)
B = rand(3,5,2)
- 我們可以通過whos來看工作空間的內容。
- 工作區的變量在退出MATLAB后就不存在了。
所以一般使用save myfile.mat命令來保存工作區變量以便以后使用。
保存操作將當前工作文件夾中的工作區保存在一個壓縮文件中,該文件的擴展名為.MAT,稱為MAT文件。 - 如果想要清空工作空間里的所有變量,則需使用clear命令
- 使用load myfile.mat命令將MAT文件中的數據恢復到工作區
第五部分:文本和字符
https://cn.mathworks.com/help/matlab/learn_matlab/character-strings.html
- 在處理文本時,將其中的字符序列用單引號括起來,可以將文本分配給變量。
例如:myText = ‘Hello, world’; - 如果文本本身包括一個單引號,則在定義時使用兩個單引號。
例如:otherText = ‘You”re right’
同所有的MATLAB變量一樣,上述創建的兩個變量也都是數組,他們的數據類型是字符型。注意:字符數組也可以像數字數組那樣用方括號括起來表示。
要將數字轉換成字符,就要用到函數。例如num2str()或者int2str()。
第六部分:函數調用
https://cn.mathworks.com/help/matlab/learn_matlab/calling-functions.html
MATLAB提供了大量函數來執行計算任務,函數相當于其他編程語言中的子程序或方法。
例如求最大值的函數,max()。
- 將輸入參數用括號括起來,如果有多個參數,則將參數用逗號隔開。
一般通過將函數值賦給某個變量這種方式來返回(輸出)函數值,如果有多個輸出參數,則需將它們用方括號括起來。
例如:
A = [1 3 5];
[maxA,location] = max(A)
- 可以用單引號括住任何字符進行輸入。
例如:
disp(‘hello world’)
===>輸出 hello world
disp()用來顯示變量的內容,括號里可以是字符,結構體,矩陣等等,類似于c語言的printf()。
- clc函數被用來清空命令行。
第七部分:二、三維圖
https://cn.mathworks.com/help/matlab/learn_matlab/plots.html
折線圖
(1) 畫圖
x = 0:pi/1000:2*pi;
y = sin(x);
plot(x,y)
這里x就用到了前面說到的索引。x表示0到2*pi之間步長為pi/100的值。
二維圖如下:
這里多說一下步長,步長決定了橫軸取值的密集程度。下圖是將步長改為pi/10之后的圖像。
對比圖中標記處不難發現,步長增大,圖像的精確度變低,所以這里盡量保證步長足夠小,使得x可以取到足夠多的值
(2) 坐標
我們可以對橫軸和縱軸分別命名,并對上述正弦圖像加上標題。
(3)plot(x, y, ‘r–’)
通過在圖像函數中添加第三個輸入參數,可以用紅色虛線繪制與原來相同的變量。
其中第三個參數規定了線條的顏色、樣式和標記的字符。(例如上例中的‘r–’表示紅色虛線。)標記是指對每一個數據點用參數所給的標記形式進行表示。(例如’g:o’表示用‘o’連成一條綠色的線輸出=.=我這個解釋沒誰了,講不清楚還是上圖吧…..)
這樣的標記除了’o’,還有‘+’,‘*’等等。
這時候你會發現,我們開始為第一個圖定義的標題和標簽不再顯示在當前圖形窗口中了。這是因為在默認情況下,重新調用一個繪圖函數,MATLAB就會清除數據,重置軸和其他元素來準備新的繪圖。
若要將圖添加到現有圖形,使用hold命令即可。
在使用hold off或close the window命令之前,所有的圖都會出現在當前的圖形窗口中。
3D圖像
3D圖像通常用有兩個參數的函數來定義一個曲面,z = f(x,y) 。
對于z,首先使用meshgrid命令在函數定義域內創建若干(x,y)。
這里需要注意的是,在matlab中,.2代表0.2
(-2:.2:2)表示在-2到2的區間上以0.2的長度為間隔的向量;
當變量x是由向量、數組或隔開的點組成(如x=0:0.1:1)時,則后面有x變量的方程要加點 (.),例如:y=x.*exp(-x.*2)
但是如果x是連續的變量,如syms x,則方程寫成y=x*exp(-x*2)。
- Subplots
你可以用subplot函數在同一窗口的不同區域顯示多個圖像。
subplots函數的前兩個輸入參數顯示當前窗口每行每列的圖像數量,第三個輸入參數指定活動區域。例如,在圖形窗口創建四個區域來分別輸出圖像。
mesh()生成由X,Y和Z指定的網線面,由C指定的顏色的三維網格圖。
第八部分:程序和腳本
https://cn.mathworks.com/help/matlab/learn_matlab/scripts.html
- 示例腳本(從均勻分布中生成隨機數據并計算平均值。繪制數據和平均值。)
用edit命令來創建腳本:
edit plotrand
這樣就打開了一個叫plotrand.m的空文件,輸入產生隨機數向量的代碼:
然后,添加代碼在圖中繪制水平線:
m = mean(r); hold on plot([0,n],[m,m]) hold off title('Mean of Random Uniform Data')在寫代碼過程中,可用(%)在代碼之間添加注釋。
最后保存腳本,在命令行窗口輸入plotrand運行腳本。
- 循環和條件語句
在腳本中,可以循環使用部分代碼,并且通過使用(for,while,if,switch等關鍵字)來執行這部分代碼。
例如,創建一個叫calcmean.m的腳本,利用for循環計算五個隨機樣本的平均數和總平均數。
現在,修改for循環,以便每次迭代時都可以查看結果。在運行腳本時,會先顯示中間結果,再計算總體均值。
for k = 1:nsamplesiterationString = ['Iteration #',int2str(k)];disp(iterationString)currentData = rand(npoints,1);sampleMean(k) = mean(currentData) end overallMean = mean(sampleMean)calcmean在編輯器中,在calcmean.m的最后添加條件語句,使它根據不同的總體均值返回不同的信息。
if overallMean < .49disp('Mean is less than expected') elseif overallMean > .51disp('Mean is greater than expected') elsedisp('Mean is within the expected range') end- 腳本位置
MATLAB中,要運行腳本,文件必須位于當前文件夾或搜索路徑中的文件夾中。
默認情況下,MATLAB安裝程序創建的MATLAB文件夾位于搜索路徑上。如果要在另一個文件夾中存儲和運行程序,需要將其添加到搜索路徑中:在當前文件夾瀏覽器中選擇文件夾,右鍵單擊,然后選擇“添加到路徑”。
第九部分:幫助和文檔
https://cn.mathworks.com/help/matlab/learn_matlab/help.html
使用doc命令在單獨的窗口中打開函數文檔。
doc mean
鍵入左圓括號后暫停,MATLAB在命令窗口中就會顯示函數提示(函數文檔的語法部分)。
mean(
使用幫助命令后,在命令窗口中查看函數的簡單用法概括。
help mean
以上就是MATLAB的基礎入門知識,歡迎指正呦~
總結
以上是生活随笔為你收集整理的MATLAB教程(1) MATLAB 基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shiro权限管理
- 下一篇: 个人计算机名称大全,个人取名方法大全