在matlab中将零值存储在零数组中

时间:2013-07-13 02:23:03

标签: arrays matlab zero

我需要将一些特定大小的值(nsents)存储到下面的scount变量中。此数组存储数字(scores),稍后变量scount中的值将与类似数组的值分开,以获得总分数。其中一些值(scores)为零。在评分期间,不会考虑阵列中的所有索引。具有0分的位置被视为“空”,而实际上考虑了该指数。我可以更改数组的大小,但这对我的其余代码不起作用。

scount = zeros(1,nsents);

如果我忽略了

之类的零
totalscores(totalscores==0) = []; 

然后连同未使用的索引我忽略那些已使用但得分为零的索引。你知道我怎么能解决这个问题吗?我对Matlab很新,所以如果我的问题不是很明确,我会道歉。谢谢

1 个答案:

答案 0 :(得分:0)

很容易解决。首先,找到scount不为零的位置,代码为:

LL=find(scount~=0);

然后,仅对非零元素进行评分。例如,评分函数为score = 1. / scount,代码为:

score=zeros(1,nsents);
score(LL)=1./scount(LL);

因此,在位置变量LL的帮助下,评分过程与零值的跟踪无关。 希望它有所帮助。谢谢。