在 MATLAB 中建立零陣列
本教程將討論使用 MATLAB 中的 zeros()
函式建立零陣列。
使用 MATLAB 中的 zeros()
函式建立零陣列
我們可以使用 Matlab 的 zeros()
函式來建立零陣列或矩陣。此功能不包括多個輸入。如果只提供一個縮放器輸入,zeros()
函式將返回一個 n×n 零矩陣。例如,讓我們建立一個大小為 3×3 的零矩陣。請參閱下面的程式碼。
ZeroV = zeros(3)
輸出:
ZeroV =
0 0 0
0 0 0
0 0 0
如果提供矩陣大小或維度的單個輸入,zeros()
函式將返回一個零矩陣,其維度將與輸入大小相同。例如,讓我們建立一個大小為 2×3 的零矩陣。請參閱下面的程式碼。
ZeroV = zeros([2 3])
輸出:
ZeroV =
0 0 0
0 0 0
正如你在輸出中看到的,輸出矩陣是 2×3。如果提供多個縮放器輸入,如 N1、N2、…、Nn,zeros()
函式將返回大小為 N1-by-…..-by-Nn 的零矩陣。例如,讓我們建立一個大小為 1×2×3 的零矩陣。請參閱下面的程式碼。
ZeroV = zeros(1,2,3)
輸出:
ZeroV(:,:,1) =
0 0
ZeroV(:,:,2) =
0 0
ZeroV(:,:,3) =
0 0
如你所見,輸出矩陣具有三個維度。假設你有一個包含一些值的矩陣,並且你想要建立一個零矩陣,該矩陣的大小或維度應與第一個矩陣相同。在這種情況下,你可以使用 size()
函式獲取前一個矩陣的大小,並將其傳遞給 zeros()
函式以建立具有相同大小或維度的零矩陣。例如,讓我們建立一個與另一個矩陣具有相同大小的零矩陣。請參閱下面的程式碼。
mat = [1 2; 3 6]
ZeroV = zeros(size(mat))
輸出:
mat =
1 2
3 6
ZeroV =
0 0
0 0
正如你在輸出中看到的,兩個矩陣具有相同的大小或維度。我們還可以通過使用 zeros()
函式內的 like
屬性來獲得一個與另一個矩陣具有相同資料型別的零矩陣。請參閱下面的程式碼。
mat = int16([1 2 3 6])
ZeroV = zeros(size(mat),'like',mat)
輸出:
mat =
1×4 int16 row vector
1 2 3 6
ZeroV =
1×4 int16 row vector
0 0 0 0
正如你在輸出中看到的,兩個矩陣都具有相同的資料型別 int16。如果你不想複製另一種矩陣資料型別,你可以將你的資料型別放在 zeros()
函式中,並且輸出將採用相同的資料型別。例如,讓我們建立一個資料型別為 int8 的矩陣。請參閱下面的程式碼。
mat = [1 2 3 6]
ZeroV = zeros(size(mat),'int8')
輸出:
mat =
1 2 3 6
ZeroV =
1×4 int8 row vector
0 0 0 0
正如你在輸出中看到的,零矩陣的資料型別為 int8。如果不想使用 zeros()
函式,可以使用冒號運算子建立索引向量,然後可以在這些索引上放置零以建立零陣列或向量。例如,讓我們建立一個大小為 1×10 的零向量。請參閱下面的程式碼。
i = 1:10;
zeros(i) = 0
輸出:
zeros =
0 0 0 0 0 0 0 0 0 0
正如你在輸出中看到的,向量包含十個零。