2021年的第一篇博文
matlab怎么把矩阵非零元素个数赋值给一个变量
1.find函数tql
经常在写VRP相关程序时会用到存储一个车辆的路径问题,然而由于不同车辆通常的顾客访问节点数目不同,这时用一个矩阵去存储就很有必要,然而在matlab的矩阵中,所有行必须等长,所以经常遇到的情况就是较短的路径后面会补零,然而我们在计算路径长度或者进行路径操作时就需要知道除去零的向量长度。
Preview of find
一、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.)
3. length(find([1 4 10 1 0 0]))=4
直接上图,如果【1 4 10 1 0 0】是你的路径的话,那么路径长度就可以直接这样得到啦~
4. size(find([1 4 10 1 0 0]), 2)=4
第二种方法也可以,逻辑和第一个其实是一样的