5.1 數組計算
5.2 調用函數
5.3 擷取幫助
數組計算
MATLAB的設計讓您能夠自然地處理數組。例如,您可以将一個标量值與數組中的所有元素相加。
y = x + 2
将 1 與 v1 的每個元素相加,然後将結果存儲在名為 r 的變量中。
r=v1+1
您可以将任意兩個大小相同的數組相加。
z = x + y
建立一個向量 vs,它是向量 v1 和 v2 的和。
vs=v1+v2
您可以将數組中的所有元素與某個标量相乘或相除。
z = 2*x
y = x/3
建立一個變量 va,其值為 vs/2(平均體積)。
va=vs/2
MATLAB 中的基本統計函數可應用于某個向量以生成單個輸出。可以使用 max 函數來确定向量的最大值。
xMax = max(x)
建立一個變量 vm,其值為 va 向量的最大值。
vm=max(va)
MATLAB的函數可在單個指令中對整個向量或值數組執行數學運算。
xSqrt = sqrt(x)
使用 round 函數建立一個名為 vr 的變量,其中包含四舍五入為整數的平均體積 va。
vr=round(va)
round(x)傳回x的四舍五入整數值。
敲重點!!!
* 運算符執行矩陣乘法。是以,如果您使用 * 将兩個大小相同的向量相乘,則由于内部次元不一緻,您将會收到一條錯誤消息。
z = [3 4] * [10 20]
錯誤使用 *
用于矩陣乘法的次元不正确。
而 .* 運算符執行按元素乘法,允許您将兩個大小相同的數組的對應元素相乘。
z = [3 4] .* [10 20]
z =
30 80
建立一個名為 mass 的變量,其中包含 density 和 va 的按元素乘積。
mass=density.*va
您已對如下元素執行了數組運算:
1.兩個相同大小的數組
2.一個标量和一個數組
您還可以對其他具有相容大小的數組執行運算。例如,嘗試執行以下語句:
x = [12;3 4;5 6; 7 8].*[1;2;3;4]
x 的大小是多少?
調用函數
size 函數可以應用于數組,以生成包含數組大小的單個輸出變量。
s = size(x)
建立一個名為 dsize 的變量,其值為 data 變量的大小。
dsize=size(data)
size 函數可以應用于矩陣,以生成單個輸出變量或兩個輸出變量。使用方括号 ([ ]) 獲得多個輸出。
[xrow,xcol] = size(x)
建立變量 dr 和 dc,其中分别包含變量 data 的行數和列數。
[dr,dc]=size(data)
可以使用 max 函數确定向量的最大值及其對應的索引值。max 函數的第一個輸出為輸入向量的最大值。執行帶兩個輸出的調用時,第二個輸出為索引值。
[xMax,idx] = max(x)
建立變量 vMax 和 ivMax,其中分别包含 v2 向量的最大值和對應的索引值。
[vMax,ivMax]=max(v2)
如果隻需函數的第二個輸出,可以使用波浪号字元 (~) 忽略特定輸出。
例如,您可能隻需要包含向量中最大值的索引:
density = data(:,2) //density是data的第二列
[~,ivMax] = max(v2) //ivMax是v2的最大值的索引值
densityMax = density(ivMax) //densityMax是v2的最大值
試着擷取 v2 中最小值的索引值。使用此索引從 density 中提取值。
density=data(:,2)
[~,ivMin]=min(v2) //v2在前面提取過,是data的第四列
densityMin=density(ivMin)
擷取幫助
如果你閱讀的代碼中出現了以前從未用過的函數,若您要了解有關MATLAB函數或功能的詳細資訊,您可以使用MATLAB文檔,點選幫助按鈕,通路該文檔。
在幫助浏覽器中,您可以浏覽或搜尋内容。每一個MATLAB函數都有一個支援文檔頁,包含調用文法、相應文法說明以及示例。
參考 randi 的文檔以完成以下任務。
建立一個名為 x 的矩陣,
其中包含 1 到 20 範圍的随機整數
行數為 5
列數為 7
x=randi(20,5,7)
您也可以使用 doc 函數打開文檔。嘗試使用如下代碼打開 randi 的文檔:
doc randi
搜尋文檔,用正态分布的整數(而非均勻分布的整數)重新建立相同的矩陣。
p=randn(5,7)
y=randi(20,5,7,'like',p)
【此題沒有答案,不知道這樣正确與否】
最後一題,希望大佬看到能夠指正。我咨詢一下其他人,如有變動再留言更正。