我有一个矩阵X(1e4,20)
,它带有值0:4
我有兴趣找到(逐行)值的次数〜= 0,== 1& 2& 3和== 3
为什么不呢 例如:
X=randi([0 4],1e4,20)
for ii=1:1e4
onestwosorfours(ii,1)=sum(X(ii,:)==1|2|4)
end
工作?
我最终做了
sum(X(ii,:)==1)+sum(X(ii,:)==2), etc
答案 0 :(得分:1)
这个表达式错了:
sum( X(ii,:)==1|2|4 )
您正在找到1
,2
和4
的{strong>按位或,true
,因为除了{{1}以外的任何内容}或false
是0
。然后你会发现数组等于数字的次数。
相反,将其重写为:
true
或者,甚至更好
sum( X(ii,:)==1 | X(ii,:)==2 | X(ii,:)==4 )
这澄清了你的真正含义。
答案 1 :(得分:1)
每次对于逻辑或结果,您必须拥有A == b
个部分:
X=randi([0 4],1e4,20);
for ii=1:1e4
onestwosorfours(ii,1)=sum( X(ii,:)==1 | X(ii,:) == 2 | X(ii,:) == 4);
end