Main Content

nonzeros

非零矩阵元素

说明

v = nonzeros(A) 返回 A 中非零元素的满列向量。v 中的元素按列排序。

示例

示例

全部折叠

使用 nonzeros 返回稀疏矩阵中的非零元素。

创建一个包含几个非零元素的 10×10 稀疏矩阵。稀疏矩阵的典型显示是一个包含非零值及其位置的列表。

A = sparse([1 3 2 1],[1 1 2 3],1:4,10,10)
A = 10x10 sparse double matrix (4 nonzeros)
   (1,1)        1
   (3,1)        2
   (2,2)        3
   (1,3)        4

找到非零元素的值。

v = nonzeros(A)
v = 4×1

     1
     2
     3
     4

使用 nonzerosnnzfind 来定位和计数非零矩阵元素。

创建一个非零元素密度为 7% 的 10×10 随机稀疏矩阵。

A = sprand(10,10,0.07);

使用 nonzeros 找到非零元素的值。

v = nonzeros(A)
v = 7×1

    0.9595
    0.4218
    0.7922
    0.8003
    0.1419
    0.9157
    0.6557

使用 nnz 计算非零元素数。

n = nnz(A)
n = 
7

使用 find 获取非零元素的索引和值。

[i,j,v] = find(A)
i = 7×1

    10
     3
     9
     1
     2
     7
    10

j = 7×1

     2
     5
     6
    10
    10
    10
    10

v = 7×1

    0.9595
    0.4218
    0.7922
    0.8003
    0.1419
    0.9157
    0.6557

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。A 可以是满矩阵或稀疏矩阵。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
复数支持:

输出参量

全部折叠

非零元素,以列向量形式返回。无论 A 是满矩阵还是稀疏矩阵,v 都以满存储方式返回。v 中的元素首先按列下标排序,然后按行下标排序。

nonzeros 给出 [i,j,v] = find(A) 中的 v,而不是索引 ij。通常,

length(v) = nnz(A) <= nzmax(A) <= prod(size(A))

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | |