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

2021年的第一篇博文


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】是你的路径的话,那么路径长度就可以直接这样得到啦~
length(find([1 4 10 1 0 0]))

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

第二种方法也可以,逻辑和第一个其实是一样的
在这里插入图片描述

总结

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

猜你喜欢

转载自blog.csdn.net/weixin_43464653/article/details/112057424