MATLAB norm() 函式

Ammar Ali 2022年7月12日
MATLAB norm() 函式

在本教程中,我們將討論使用 MATLAB 中的 norm() 函式查詢向量或矩陣的歐幾里得範數和 Frobenius 範數。

MATLAB norm() 函式

MATLAB 的 norm() 函式用於求向量或矩陣的歐幾里德範數和 Frobenius 範數。歐幾里得範數是向量到其原點的歐幾里得距離,它等於向量的大小、2 範數或歐幾里得長度。

歐幾里得距離等於歐幾里得空間中兩點之間線段的長度。我們還可以通過求向量與其自身的內積然後取其平方根來求歐幾里得範數。

Frobenius 範數是矩陣的歐幾里得範數。如果我們在 norm() 函式中傳遞一個向量,它將返回該向量的歐幾里得範數,但在矩陣的情況下,norm() 函式將返回 Frobenius 範數。

norm() 函式有五種不同的語法,如下所示。

nm = norm(vec)
nm = norm(vec,p)
nm = norm(mat)
nm = norm(mat,p)
nm = norm(mat,"fro")

第一種語法將返回給定向量的 2 範數或歐幾里得範數。第二種語法將返回給定向量的 p-範數,其中 p-範數可以是 1-範數、2-範數、3-範數等。

第三種語法將返回矩陣的最大奇異值或歐幾里得範數。第四種語法將返回給定矩陣的 p 範數,p 可以是 1、2 或 Inf

如果 p 為 1,語法將返回給定矩陣的列的最大絕對和,如果 p 為 2,將返回 2-範數。如果 pInf,語法將返回給定矩陣的最大絕對行數。

最後一種語法將返回給定矩陣的 Frobenius 範數。例如,讓我們使用 norm() 函式找到向量和矩陣的歐幾里得範數。

請參閱下面的程式碼。

clc
clear

v1 = 1:5;
m = [1:10;21:30];
n1 = norm(v1)
n3 = norm(m)

輸出:

n1 =

    7.4162


n3 =

   83.2005

在上面的輸出中,返回了整個矩陣的範數,即 83。如果我們想找到矩陣中每一行或每一列的範數,我們可以使用 vecnorm() 函式,它將給定矩陣的每一行或每一列視為一個單獨的向量並計算其範數。

例如,如果我們在 vecnorm() 函式中傳遞一個矩陣,它將返回一個向量,其中包含給定矩陣中存在的每一列的 2-範數。我們還可以將規範數設定為第二個引數,並將我們想要將規範作為第三個引數的維度設定為 vecnorm() 函式中的第三個引數。

檢視此連結以獲取有關 norm() 函式的更多詳細資訊。此外,檢視此連結以瞭解有關 vecnorm() 函式的更多詳細資訊。

Author: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - MATLAB Vector

相關文章 - MATLAB Matrix