matlab 创建批量文件夹_初识MATLAB
1. MATLAB是什么?
MATLAB,是“matrix laboratory”的縮寫形式,意思是矩陣實驗室。MATLAB是在1984年由一個大學生把數學課的教學課件重新編程設計出來的一個產品,很多人都把MATLAB看做是一個計算機軟件,是一種用于算法開發、數據分析、可視化和數值計算的編程環境。MATLAB一個重要優勢就是封裝了大量數學相關的算法函數,工程師和科學家可以很方便的調用而不必重新編寫。MATLAB同時也是一種非常受歡迎的編程語言,簡稱M語言,工程師可以用它來編寫各種科學技術程序,甚至可以將編寫的程序發布成獨立的APP供他人使用。
MATLAB的應用非常廣泛,可以說涉及到工業和科學領域的方方面面,在航空、航天、汽車、電子、能源、金融、大數據和人工智能等各個行業中,MATLAB都被工程師和科學家廣泛應用。究其原因,我想還是MATLAB與生俱來的數學基因使它可以在各個工業和科學領域發揮作用,畢竟無論你是研究天體物理學,還是開發一個機器人,最終還是會落到數學的解算上來。
2. MATLAB軟件界面
如果把MATLAB看做是一個計算機軟件,那就要了解下MATLAB的界面。啟動MATLAB時,會打開MATLAB主界面,默認布局下包括下列面板:
- 當前文件夾:MATLAB中的文件瀏覽器,定位在當前工作的文件夾。
- 命令行窗口:是輸入MATLAB命令的區域,命令前面以提示符 (>>) 表示。
- 工作區:Workspace,創建或者導入的數據都以變量的形式存顯示在工作區。
3. MATLAB語言初探
矩陣和數組
MATLAB作為一種編程語言,M語言,和C語言或者其它語言相比,有一個最大的不同,那就是所有 MATLAB 變量都是多維數組,與數據類型無關。這也是很多熟悉了C語言編程的工程師很難轉變的一種編程習慣。MATLAB 主要用于處理整個的矩陣和數組,而其他編程語言大多逐個處理數值。矩陣作為MATLAB變量的一種常見形式,是指通常用來進行線性代數運算的二維數組。
創建數組
試著創建第一個數組,包含四個元素,可以使用逗號(,)或者空格分開。
a = [1 2 3 4]a = 1×41 2 3 4
這種數組叫做行向量。
如果要創建包含多行的矩陣,則用分號(;)來分割各行。
a = [1 2 3; 4 5 6; 7 8 10]a = 3×31 2 3
4 5 6
7 8 10
創建矩陣還可以使用一些內置函數(ones、zeros 或 rand 等函數)來自動創建。例如,創建一個由隨機整數組成的 5×1 列向量。
b = randi(100,5,1)b = 5×162
59
55
87
27
數組索引
MATLAB的每個變量都是可以包含多個數字的數組,要訪問數組中的元素,需要使用數組索引。
使用內置魔方矩陣函數創建一個 4×4 的矩陣。
A = magic(4)A = 4×416 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
對于數組而言,其中的每個元素都有一個唯一的索引,可以理解為地圖上某個位置點的坐標。有兩種方式引用數組中的特定元素,最常使用的方法是指定行和列的下標。
A(3,2)ans = 7另一種方法不太常用,就是使用單一下標按順序向下遍歷每一列。使用單一下標引用數組中特定元素的方法稱為線性索引。
A(11)ans = 6比較下面兩行代碼看看有何不同。
B = A(4,5) %Index in position 2 exceeds array bounds (must not exceed 4). A(4,5) = 17A = 4×516 2 3 13 0
5 11 10 8 0
9 7 6 12 0
4 14 15 1 17
如果將數組外的元素賦值給某個變量,MATLAB會引發錯誤。如果將某個常數賦值給數組外的元素,則數組的大小會自動增大,用來容納新增的元素。能理解下面的代碼嗎?
C(4,3) = 6C = 4×30 0 0
0 0 0
0 0 0
0 0 6
如果要引用數組的多個元素,可以使用冒號(:)運算符,用來指定格式為(起始值:結束值)的范圍。例如:列出數組A前三行第二列的所有元素:
A(1:3,2)ans = 3×12
11
7
單獨的冒號(沒有起始值或結束值)則可以指定該維中的所有元素。例如,列出數組A 第三行中的所有列:
A(3,:)ans = 1×59 7 6 12 0
此外,冒號運算符還可以使用較通用的格式 start:step:end 創建等距向量值。如果省略step參數,則默認步長為1。
B = 0:10:100B = 1×110 10 20 30 40 50 60 70 80 90 100
數組運算
MATLAB的變量都是以數組形式存在的,在MATLAB中可以使用一個數學運算符或者函數來處理矩陣中的所有元素。
a + 10 %對矩陣a中每個元素加10ans = 3×311 12 13
14 15 16
17 18 20sin(a) %計算矩陣a中每個元素的正弦值ans = 3×3
0.8415 0.9093 0.1411
-0.7568 -0.9589 -0.2794
0.6570 0.9894 -0.5440a' %求矩陣a的轉置矩陣ans = 3×3
1 4 7
2 5 8
3 6 10
因為MATLAB中的變量都是矩陣,所以變量間的運算都是矩陣運算,那么矩陣乘除就必須符合[a,b]*[b,a]的格式。
m = rand(2,3)m = 2×30.3181 0.9398 0.4795
0.1192 0.6456 0.6393n = rand(3,2)n = 3×2
0.5447 0.7210
0.6473 0.5225
0.5439 0.9937m * nans = 2×2
1.0424 1.1968
0.8305 1.0585
如果兩個矩陣的具有相同行列數,那么兩個矩陣相加的結果則是矩陣中對應位置的元素分別相加后得到新矩陣。如果希望兩個矩陣對應位置上的元素分別相乘或相除得到一個新矩陣,該如何計算呢?這就要引出MATLAB中一個獨有的點運算符,如(.*)。乘法、除法和冪的矩陣運算符都可以使用點運算符。
a.*aans = 3×31 4 9
16 25 36
49 64 100a./aans = 3×3
1 1 1
1 1 1
1 1 1a.^2ans = 3×3
1 4 9
16 25 36
49 64 100
數組串聯
串聯是連接數組以便形成更大數組的過程。實際上,第一個數組是通過將其各個元素串聯起來而構成的。成對的方括號[] 即為串聯運算符。
A = [a, a]A = 3×61 2 3 1 2 3
4 5 6 4 5 6
7 8 10 7 8 10
使用逗號將彼此相鄰的數組串聯起來稱為水平串聯。每個數組必須具有相同的行數。同樣,如果各數組具有相同的列數,則可以使用分號垂直串聯。
A = [a; a]A = 6×31 2 3
4 5 6
7 8 10
1 2 3
4 5 6
7 8 10
文本和字符
字符串數組中的文本
MATLAB中可以將字符序列加上雙引號賦值給變量。
t = "Hello, world"t = "Hello, world"如果文本中本身就包含雙引號,在定義的時候使用兩個雙引號。
q = "MATLAB is a good engineering ""Knife"""q = "MATLAB is a good engineering "Knife""MATLAB中所有的變量都是數組,所以t和q也都是數組,數據類型是string。使用命令whos可以查看變量的信息。
whos tName Size Bytes Class Attributes t 1x1 166 string要將文本添加到字符串的末尾,請使用加號運算符 +。
f = 71; c = (f-32)/1.8; tempText = "Temperature is " + c + "C"tempText = "Temperature is 21.6667C"與數值數組類似,字符串數組可以有多個元素。使用 strlength 函數可以求數組中每個字符串的長度。
A = ["a","bb","ccc"; "dddd","eeeeee","fffffff"]A = 2×3 string array"a" "bb" "ccc"
"dddd" "eeeeee" "fffffff" strlength(A)ans = 2×3
1 2 3
4 6 7
字符數組中的數據
有時,字符表示的數據并不一定對應到文本,例如 DNA 序列。此類數據可以存儲在數據類型為 char 的字符數組中。字符數組使用單引號,數組的每個元素都包含單個字符。
seq = 'GCTAGAATCC'; whos seqName Size Bytes Class Attributes seq 1x10 20 char seq(4)ans = 'A'使用方括號串聯字符數組,就像串聯數值數組一樣。
seq2 = [seq 'ATTAGAAACC']seq2 = 'GCTAGAATCCATTAGAAACC'4. MATLAB科學繪圖
二維圖:線圖
MATLAB中最常用的繪圖函數是plot。例如,繪制從0到2π之間的正弦函數值。
x = 0:pi/100:2*pi; y = sin(x); plot(x,y)MATLAB的繪圖功能非常強大,可以標記坐標軸并添加標題。
plot(x,y) xlabel('x') ylabel('sin(x)') title('正弦函數制圖')通過向 plot 函數添加第三個輸入參數,您可以使用紅色虛線繪制相同的變量。
plot(x,y,'r--')'r--' 為plot函數的參數,設定線條的顏色和線型。plot的參數設定可以包含表示線條顏色、線型和標記的字符。標記是在繪制的每個數據點上顯示的符號,例如,+、o 或 *。例如,'g:*' 表示繪制使用 * 標記的綠色點線。
默認情況下,每次調用繪圖函數、重置坐標區及其他元素以準備新繪圖時,MATLAB都會清空繪圖窗。要將繪圖添加到當前圖窗中,可以使用 hold on命令,在使用 hold off 或關閉窗口之前,所繪制的新圖形都會顯示在當前圖窗中。
x = 0:pi/100:2*pi; y = sin(x); plot(x,y)hold ony2 = cos(x); plot(x,y2,':') legend('sin','cos')hold off三維圖:曲面
三維圖通常顯示一個由帶兩個變量的函數(即 z = f (x,y))定義的曲面圖。要計算 z,可以先使用 meshgrid 在此函數的域中創建一組 (x,y) 點,然后繪制曲面圖。
[X,Y] = meshgrid(-2:.2:2); Z = X .* exp(-X.^2 - Y.^2); surf(X,Y,Z)函數surf 和 mesh都是以三維形式顯示曲面圖。surf 使用不同顏色繪制曲面圖的連接線和面。mesh 僅以顏色繪制線框曲面圖連接線。
[X,Y] = meshgrid(-2:.2:2); Z = X .* exp(-X.^2 - Y.^2); mesh(X,Y,Z)子圖
使用 subplot 函數可以在同一窗口的不同子區域顯示多個繪圖。subplot 的前兩個輸入表示每行和每列中的繪圖數,第三個輸入指定繪圖是否處于活動狀態。例如,在圖窗窗口的 2×2 網格中創建四個繪圖。
t = 0:pi/10:2*pi; [X,Y,Z] = cylinder(4*cos(t)); subplot(2,2,1); mesh(X); title('X'); subplot(2,2,2); mesh(Y); title('Y'); subplot(2,2,3); mesh(Z); title('Z'); subplot(2,2,4); surf(X,Y,Z); title('X,Y,Z');5. MATLAB幫助文檔
如果要學好用好MATLAB,那就一定要熟練使用MATLAB的幫助文檔,也許這是我見過的最詳細的技術幫助文檔了。所有 MATLAB函數都有輔助文檔,這些文檔包含一些示例,并介紹函數輸入、輸出和調用語法。從命令行訪問此信息有多種方法:
- 使用 doc 命令在單獨的窗口中打開函數文檔。
- 在鍵入函數輸入參數的左括號之后暫停,此時命令行窗口中會顯示相應函數的提示(函數文檔的語法部分)。
- 使用 help 命令可在命令行窗口中查看相應函數的簡明文檔。
馬上點擊幫助圖標,開始奇妙的MATLAB旅程吧!
總結
以上是生活随笔為你收集整理的matlab 创建批量文件夹_初识MATLAB的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAS操作确保原子性
- 下一篇: 自动化方法模拟Android手机点击、触