MATLAB 中的 nnz() 函数

Ammar Ali 2022年6月7日
MATLAB 中的 nnz() 函数

本教程将讨论使用 MATLAB 中的 nnz() 函数查找向量或矩阵中存在的非零元素的数量。

在 MATLAB 中使用 nnz() 函数

MATLAB 的 nnz() 函数用于查找向量或矩阵中存在的非零元素。以下是 nnz() 函数的基本语法。

语法:

num = nnz(m)

该语法将返回存储在矩阵或向量 m 中的非零元素的总数,并将其存储在变量 num 中。nnz() 函数的输入应该是矩阵或向量。

例如,让我们创建一个向量并使用 nnz() 函数查找存在的非零元素的数量。

代码:

m = [0 1 0 5]
num = nnz(m)

输出:

m =

   0   1   0   5

num = 2

我们在上面的代码中使用了一个包含四个元素的向量,其中两个元素为零。我们可以看到 nnz() 函数返回两个,这意味着给定矩阵或向量中存在两个非零元素。

我们还可以在 nnz() 函数中定义条件。如果我们只想找到大于 1 的元素个数,我们可以使用大于符号来定义 nnz() 函数内部的条件。

例如,让我们找出上述矩阵中存在的大于 1 的元素的数量。

代码:

m = [0 1 0 5]
num = nnz(m>1)

输出:

m =

   0   1   0   5

num = 1

在上面的示例中,我们在 nnz() 函数中定义了一个条件来返回大于 1 的元素数。大于一的元素数为 1,正如我们在输出中看到的那样。

如果我们不定义条件,nnz() 函数将返回大于 0 的元素数,但我们可以更改该条件。我们还可以设置 nnz() 函数返回大于某个负数(如 -5)的元素数,在这种情况下,该函数将计算所有大于 -5 的元素,包括零。

例如,让我们计算矩阵中大于负值的元素数量。

代码:

m = [-5 -1 1 0 5]
num = nnz(m>-5)

输出:

m =

  -5  -1   1   0   5

num = 4

如我们所见,上述矩阵中有四个数字大于 -5,而 nnz() 函数也返回四个作为输出。我们可以使用大于 >、小于 <、等于 =、大于等于 >=、小于等于 <=、逻辑与&和逻辑与或|运算符在 nnz() 函数中定义我们的条件。

AND & 和 OR |如果我们想定义多个条件,运算符会很有用。在 AND 运算符的情况下,如果元素满足所有条件,则将被计算在内,而在 OR 运算符的情况下,如果元素满足一个条件,则将被计算在内。

如果我们要统计大于某个值的元素个数和小于某个值的元素个数,可以使用 AND 运算符定义两个条件。如果我们要计算大于某个值的元素个数和大于另一个值的元素个数,我们可以使用 OR 运算符。

例如,让我们使用 nnz() 函数中的多个条件来计算矩阵中存在的元素数量。

代码:

m = [15 10 1 0 5]
num = nnz(m>1 & m<15)
num_2 = nnz(m>5 | m<1)

输出:

m =

   15   10    1    0    5

num = 2
num_2 = 3

我们使用 AND 运算符查找大于 1 和小于 15 的元素的数量,并且我们知道只有两个元素也由 nnz() 函数返回。我们还使用 OR 运算符来查找大于 5 或​​小于 1 的元素个数,我们知道两个元素大于 5 和一个元素小于 1。

元素总数为 3,由 nnz() 函数返回。我们还可以在 nnz() 函数中使用 AND 和 OR 运算符来定义条件并定义任意数量的条件。

查看此文档以获取有关 nnz() 函数的更多详细信息。

作者: 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 Matrix