0

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

scount = zeros(1,nsents);

如果我用类似的东西忽略零

totalscores(totalscores==0) = []; 

然后连同未使用的索引,我忽略那些已使用但得分为零的索引。你知道我该如何解决这个问题吗?我对 Matlab 很陌生,所以如果我的问题不是很清楚,我深表歉意。谢谢

4

1 回答 1

0

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

LL=find(scount~=0);

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

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

因此,在位置变量 LL 的帮助下,评分过程与为零的计数无关。希望它有帮助。谢谢。

于 2013-07-13T02:43:56.680 回答