我是MATLAB的新手。假设我有一个像x = [1 1 1 1 1 1 0 0 1 0]的向量。我想计算向量中元素的总数和向量中非零元素的数量。然后拿出两个数字的比率。我在MATLAB帮助中搜索。怎么做元素数,但到现在为止我没有运气。如果有人向我提供帮助,那将会有很大的帮助。提前谢谢。
答案 0 :(得分:9)
答案 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)
是另一种方法。