matlab过滤数组中非零
时间: 2023-05-03 16:07:10 浏览: 162
在Matlab中,去掉数组中所有的非零项可以使用“find”函数。该函数返回矩阵中非零元素的索引,通过将这些索引传递给数组,就可以得到一个只包含零的新数组。
例如,对于一个包含非零元素的数组a,可以使用以下代码过滤出只有零元素的新数组b:
idx = find(a);
b = zeros(size(a));
b(idx) = 1;
该代码中,首先使用“find”函数获取非零元素的索引,并将其存储在“idx”中。接着,创建一个与a相同大小的全零新数组“b”。最后,将在“idx”中找到的非零元素的索引对应的元素置为1,就可以得到只包含零的新数组“b”。
值得注意的是,如果原数组a中只有少量非零元素,可以使用“logical”类型来创建新数组b,这样可以减少内存的使用。
例如,对于一个包含非零元素的数组a,可以使用以下代码过滤出只有零元素的新数组b:
b = zeros(size(a));
b(a~=0) = 1;
该代码中,使用“a~=0”来创建一个“logical”类型的数组,其中非零元素的位置为true,其余位置为false。将这个逻辑数组与一个全零的数组相乘,就可以得到一个只包含零的新数组“b”。这种方法不需要额外的内存空间,因此在处理大型数组时可以提高代码的效率。
相关问题
matlab获取数组中非零元素的行列数
你可以使用以下代码获取矩阵中非零元素的行列数:
```matlab
A = [1 0 2; 0 3 0; 4 0 5];
[row, col] = find(A);
```
其中,`find(A)` 函数返回矩阵 `A` 中非零元素的下标,`row` 和 `col` 分别表示非零元素的行和列。运行上述代码后,`row` 和 `col` 的值为:
```
row = [1; 3; 1; 2; 3];
col = [1; 1; 3; 2; 3];
```
表示矩阵中第1行第1列,第3行第1列,第1行第3列,第2行第2列和第3行第3列这些位置处的元素是非零的。
matlab 数组中非0值
在 MATLAB 中,你可以使用 `nonzero` 函数来获取数组中非零值的索引。这个函数返回一个包含非零值索引的矩阵,其中第一个行向量表示非零值所在的行,第二个行向量表示非零值所在的列。下面是一个示例:
```matlab
A = [0, 1, 0; 2, 0, 3; 0, 4, 0];
indices = nonzero(A);
```
这将返回一个矩阵 `indices`,其中包含非零值的索引。你可以根据需要使用这些索引来访问非零值。
阅读全文
相关推荐















