nonzeros
非零矩阵元素
说明
示例
非零矩阵元素
使用 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
非零元素的位置和计数
使用 nonzeros
、nnz
、find
来定位和计数非零矩阵元素。
创建一个非零元素密度为 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
— 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。A
可以是满矩阵或稀疏矩阵。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
复数支持: 是
输出参量
v
— 非零元素
列向量
非零元素,以列向量形式返回。无论 A
是满矩阵还是稀疏矩阵,v
都以满存储方式返回。v
中的元素首先按列下标排序,然后按行下标排序。
nonzeros
给出 [i,j,v] = find(A)
中的 v
,而不是索引 i
和 j
。通常,
length(v) = nnz(A) <= nzmax(A) <= prod(size(A))
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
nonzeros
函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray
(Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)