计算matlab中的元素数量

时间:2011-04-29 08:46:46

标签: matlab

我是MATLAB的新手。假设我有一个像x = [1 1 1 1 1 1 0 0 1 0]的向量。我想计算向量中元素的总数和向量中非零元素的数量。然后拿出两个数字的比率。我在MATLAB帮助中搜索。怎么做元素数,但到现在为止我没有运气。如果有人向我提供帮助,那将会有很大的帮助。提前谢谢。

4 个答案:

答案 0 :(得分:9)

您可以使用numel(x)获取元素数量。

您可以使用sum(x ~= 0)获取非零数。

所以比率是一个除以另一个。

答案 1 :(得分:4)

找到非零元素数量(通常)的正确方法是使用nnz()函数;使用sum()也适用于此特定情况,但如果使用的矩阵中有0和0以外的数字,则会失败。因此,要计算总元素数,非零元素数和比率,请使用以下代码:

x = [1 1 1 1 1 1 0 0 1 0];
nonzeroes = nnz(x);
total = numel(x);
ratio = nonzeroes / total;

答案 2 :(得分:2)

非零元素与向量中所有元素的比率为:

r = length(find(x)) / length(x)

length的作用是显而易见的。 find为您提供所有非零元素的索引。

编辑:修正了使用大小而不是长度的错误。

答案 3 :(得分:0)

a= numel(find(x))/numel(x)是另一种方法。