Matlab扫雷记录01-matlab中获得向量非零元素个数

2021年的第一篇博文

matlab怎么把矩阵非零元素个数赋值给一个变量

  • 1.find函数tql
  • 一、find函数是什么?
  • 二、使用步骤
    • 1.语法说明Syntax
    • 2.Description
    • 3. length(find([1 4 10 1 0 0]))=4
    • 4. size(find([1 4 10 1 0 0]), 2)=4
  • 总结


1.find函数tql

经常在写VRP相关程序时会用到存储一个车辆的路径问题,然而由于不同车辆通常的顾客访问节点数目不同,这时用一个矩阵去存储就很有必要,然而在matlab的矩阵中,所有行必须等长,所以经常遇到的情况就是较短的路径后面会补零,然而我们在计算路径长度或者进行路径操作时就需要知道除去零的向量长度。


Preview of find
Matlab扫雷记录01-matlab中获得向量非零元素个数_第1张图片

一、find函数是什么?

find函数主要用来返回非零元素的新向量,它会把你当前的向量的零元素舍去,其他元素重新按他们原来顺序排成一个长长的1行好多列的向量。(Find indices and values of nonzero elements。)

二、使用步骤

1.语法说明Syntax

k = find(x)
[i,j] = find(X)
[i,j,v] = find(X)

2.Description

k = find(X) 就是返回X中非零元素的索引,并把索引赋值给k。(returns the indices of the array X that point to nonzero elements. If none is found, find returns an empty matrix.)
Matlab扫雷记录01-matlab中获得向量非零元素个数_第2张图片

3. length(find([1 4 10 1 0 0]))=4

直接上图,如果【1 4 10 1 0 0】是你的路径的话,那么路径长度就可以直接这样得到啦~
Matlab扫雷记录01-matlab中获得向量非零元素个数_第3张图片

4. size(find([1 4 10 1 0 0]), 2)=4

第二种方法也可以,逻辑和第一个其实是一样的
Matlab扫雷记录01-matlab中获得向量非零元素个数_第4张图片

总结

1. length和find函数的组合拳。 2. size和find组合拳。

你可能感兴趣的:(Matlab,matlab,算法)