matlab入門

matlab入門

MATLAB 是“matrix laboratory”的縮寫形式。MATLAB® 主要用於處理整個的矩陣和數組,而其他編程語言大多逐個處理數值。矩陣是指通常用來進行線性代數運算的二維數組。

MATLAB 是美國MathWorks公司出品的商業數學軟件,用於算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括MATLAB和Simulink兩大部分。MATLAB擁有豐富的算法工具箱,因此在工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域都能看到它的身影,可謂是無處不在。功能強大,MATLAB 安裝包比較大R2018b版12G。

 

matlab安裝包體積巨大,下載安裝都是比較耗時的,正版軟件太貴。你可以使用雲超級應用,簡單的來說就是軟件搭載服務器上,你不用安裝到本地電腦,只要有網絡即可進行學習實驗。

在線版matlab(網頁版,web版),不用安裝了,地址:

https://uzer.me/u/signin

沒有註冊賬號,先註冊,註冊時需要使用手機接收驗證消息。

 

有登錄賬號。然後在主界面可以看到很多大型軟件的個性化icon,這裏就以matlab爲例。

 

加載比較慢,卡屏,黑屏很正常,耐心等待,然後就會打開,可以看一下屏幕右下角的網絡狀態圖標。

流暢程度和網絡狀態有關,一些使用注意事項,上傳本地文件、下載文件都要在文檔庫中進行。目前版本R2015a,英文界面:

 

下面以桌面安裝版爲例介紹

下載地址https://pan.baidu.com/s/1Pl64M42QHU78DbpobQpXPQ  提取碼: d8jt ,是R2018b中文版,安裝過程還是比較容易的,就是下載較慢,安裝時間較長,就不多言了。直接介紹使用。

使用 MATLAB 時,可發出創建變量和調用函數的命令。例如,通過在命令行中鍵入以下語句來創建名爲 a 的變量:

>>a = 1

MATLAB 將變量 a 添加到工作區,並在命令行窗口中顯示結果。參見下圖:

 

創建更多變量:

>>b = 2

>>c = a+b

如果未指定輸出變量,MATLAB 將使用變量 ans(answer 的縮略形式)來存儲計算結果。

>> sin(pi/2)

ans =

     1

注:matlab中的圓周率用pi表示

 

如果語句以分號結束,MATLAB 會執行計算,但不在命令行窗口中顯示輸出,運算結果保存在工作區中,如下圖所示:

 

 

 

按 (↑) 和 (↓) 可以重新調用以前的命令。若要快速定位,可以先鍵入命令的前幾個字符之後按箭頭鍵。例如,要重新調用命令 b = 2,請鍵入 b,然後按向上箭頭鍵。

 

處理文本時,將 字符序列 括在單引號中。可以將 文本 賦給 變量:

myText = 'Hello, world';

如果文本包含單引號,則在定義中使用兩個單引號:

otherText = 'You''re right'

 

MATLAB矩陣表示及矩陣元素的引用

 

冒號表達式:  起始:[步長:]終止 生成行向量,省略步長,則默認爲1 如起始:終止

 

等價於linspace (a,b,n) 函數,此matlab函數返回a與b之間均勻間隔點的n個元素的行向量,當n省略時,生成100個。

 

閱讀文獻時請注意:矩陣中行列的意思,大陸將水平(橫)的稱行,垂直(豎)的稱列,但臺灣的行和列與大陸恰好相反。即大陸把row叫行,把column叫列,臺灣把row叫列,把column叫行,跟我們大陸正好相反。

 

matlab中引用元素方法:①下標。 ②索引序號  他們之間的關係A(i,j)的序號爲(j-1)×m+i  ③布爾(邏輯)法。

下面介紹之。

矩陣同一行元素可用逗號或空格分隔。

【注】(1)matlab中元素中下標的序號是從一開始的;(2)matlab中元素按列存儲,依次第一列,第二列等。Matlab的存儲順序是8,3,4,1,5,9,6,7,2,如下圖所示:

 

下標法引用的例子

A(i,j):其中ii和jj可以是一維向量、標量、“:”號或者“end”,示例如下:

A(2:3,3:-1:1)表示引用數組中的2~3行,3~1列對應的元素

>>A(2:3,3:-1:1)

 ans =

     7     5     3

     2     9     4

A(:,end)表示引用最後一列元素,“:”表示所有列或行,“end”表示最後一列或列,“end-n”表示倒數第n行或列

>>A(:,end)

 ans =

     6

     7

     2

A(1,end-1)表示引用第1行倒數第2個元素

>>A(1,end-1)

 ans =

     1

A([2 1 3 3],[1 1 2 2 1])表示引用按兩個向量引用指定的元素,即A中的第2,1,3,3行和第1,1,2,2,1列對應的元素

>>A([2 1 3 3],[1 1 2 2 1])

 ans =

     3     3     5     5     3

     8     8     1     1     8

     4     4     9     9     4

     4     4     9     9     4

 

★索引法引用(存儲順序) 的例子

 

A(index):index可以是任意的數組,index的元素必須是正整數。

下標和索引之間可以通過ind2sub和sub2ind函數相互轉換,具體可以看幫助(在命令行窗口中輸入 help 函數名  按下回車鍵)

 

[I,J] = ind2sub(siz,IND)

IND = sub2ind(siz,I,J)

還有使用A(:)就可以將數組A轉換爲列向量

 

A(8):表示引用A的第8個元素

ans =

     7

B=A([1 5 2 2 1 3]):表示依次引用A的第1,5,2,2,1,3個元素,返回與index尺寸相同的數組,也就是說size(B)=size(index)

B =

     8     5     3     3     8     4

A([2 7 9;1 1 1;8 7 6]):返回的時侯是一個3*3的矩陣

ans =

     3     6     2

     8     8     8

     7     6     9

 

★布爾法引用

 

A(X):X是一個有0和1組成布爾型數據,且size(A)=size(X),對應位置爲1則留下該數據,0則去掉,最後按A中的存儲順序,返回一個列向量

 

假如說A是3*3的數組

 

A(logical([1 0 0;0 1 0;0 0 1])):表示引用了數組A的對角線元素,注意必須使用logical將0/1數組轉換爲布爾型

A(x)%引用對應位置爲1的數據,返回列向量

 

x=logical([1 1 0;0 1 1;1 0 1])%將double轉化爲boolean型數據

 

x =

 

  3×3 logical 數組

 

   1   1   0

   0   1   1

   1   0   1

 

>> A(x)%引用對應位置爲1的數據,返回列向量

 

ans =

 

     8

     4

     1

     5

     7

     2

 

如果想要寫一段小程序,只需要在每一句話的後面加一個英文分號,再回車即可。如實現兩個二維矩陣相加的小程序a+b。

>> a=[5 6;7 8];

>> b=[1 2;3 4];

>> c=a+b;

>> disp(c)

     6     8

10    12

 

 

二維圖和三維圖

使用 plot 函數來創建二維線圖,例如,繪製從 0 到 之間的正弦函數值:

x = 0:pi/100:2*pi;

>> y = sin(x);

>> plot(x,y)

運行結果如下:

三維圖通常顯示一個由帶兩個變量的函數(即 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)

 

運行結果如下:

 

 

MATLAB 提供兩種程序文件:

腳本,包含一系列命令和函數調用,不接受輸入參數或返回輸出參數。它們處理工作區中的數據。腳本是一個包含多行連續 MATLAB 命令和函數調用的擴展名爲 .m 的文件。在命令行中鍵入腳本名稱即可運行該腳本。

函數,可接受輸入參數,並返回輸出參數。函數的第一行以關鍵字 function 開頭。它提供函數名稱和參數順序,函數主體可以包括有效的 MATLAB 表達式、控制流語句、註釋、空白行和嵌套函數。您在函數內創建的任何變量都存儲在特定於該函數的工作區內,該工作區獨立於基礎工作區。程序文件可以包含多個函數。如果文件僅包含函數定義,則第一個函數是主函數,也是 MATLAB 與文件名關聯的函數。主函數或腳本代碼後面的函數稱爲局部函數。局部函數只能在文件內使用。

注:MATLAB函數分爲內置函數和用戶自定義函數

 

創建腳本文件:

您可以通過以下方式創建m腳本文件

· 單擊主頁選項卡上的新建腳本 按鈕 或 新建→腳本 打開編輯器,參見下圖:

此時,就可以在編輯器中就可輸入腳本代碼了。

·也可以在命令行窗口中,用 edit 命令創建m腳本文件

>> edit plotrand

建立一個名爲plotrand.m的文件:

單擊“是”按鈕

打開編輯器,輸入代碼,參見下圖:

輸入一些繪製隨機數向量的代碼:

% Generate random data from a uniform distribution

%and calculate the mean. Plot the data and the mean.

 

n = 50;          % 50 data points

r = rand(n,1);

plot(r)

 

% Draw a line from (0,m) to (n,m)

m = mean(r);

hold on

plot([0,n],[m,m])

hold off

title('Mean of Random Uniform Data')

注:編寫代碼時,最好添加描述代碼的註釋。使用百分比 (%) 符號添加註釋。

單擊運行結果如下:

 

也可以在命令行中鍵入腳本名稱來要運行腳本:

>> plotrand

 

要運行腳本,該文件必須位於當前文件夾或搜索路徑中的某個文件夾內。默認情況下,MATLAB 安裝程序創建的 MATLAB 文件夾位於此搜索路徑中。如果要將程序存儲在其他文件夾,或者要運行其他文件夾中的程序,請將其添加到此搜索路徑。

 

 

創建用戶自定義函數

腳本和函數都允許您通過將命令序列存儲在程序文件中來重用它們。此類型的函數必須在文件中而不是在命令行中定義。通常,您可以將函數存儲在其自己的文件中。在這種情況下,最佳做法是對函數和文件使用相同的名稱(此示例中爲 fact.m)。例如,名爲 fact 的以下函數用於計算某個數 (n) 的階乘並返回結果 (f)。在命令行中輸入 edit fact

打開編輯器,輸入代碼

function f = fact(n)

    f = prod(1:n);

end

計算 5 的階乘。

>>x = 5;

>>y = fact(5)

y =

   120

 

從 R2016b 開始,用於存儲函數的另一個選項是將函數包含在腳本文件的末尾。例如,創建一個名爲 mystats.m 幷包含一些命令和兩個函數 fact 和 perm 的文件。該腳本用於計算 (3,2) 的置換。

x = 3;

y = 2;

z = perm(x,y)

 

function p = perm(n,r)

    p = fact(n)*fact(n-r);

end

 

function f = fact(n)

    f = prod(1:n);

end

 

從命令行調用該腳本。

>>mystats

z =

     6

 

有了這些基礎,就可以參考下面鏈接深入學習了。

官方MATLAB入門教程

https://ww2.mathworks.cn/learn/tutorials/matlab-onramp.html?s_eid=PEP_ILMEDUPage_learning

在線幫助文檔地址

https://ww2.mathworks.cn/help/matlab/index.html?s_tid=CRUX_lftnav

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章