If this value of 5x5 cell with vectors [106x1] are different to zeroes,count them e put the count in a matrix.
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
pamela sulis
le 13 Nov 2015
Commenté : pamela sulis
le 13 Nov 2015
I have matchcounts (5x5)cell, every cell has a vector of double [106x1]. The vectors of double have zeros and non zero values. I want to find non zero values for every cell, count them and put the result in a matrix. I tried with this code:
a{i,j}(k,1)=[];
for k=1:106
for i=1:5
for j=1:5
if (matchcounts{i,j}(k,1))~=0
a{i,j}=a{i,j}(k,1)+1;
end
end
end
end
end
and others but it's not correct! Can you help me? Thanks Example: matchcounts(,1)(k,1) have 30 no zero values, the code have to count this no zero values and put 30 in the matrix in position (1,1): A(1,1)=30.
0 commentaires
Réponse acceptée
Stephen23
le 13 Nov 2015
Modifié(e) : Stephen23
le 13 Nov 2015
>> X = {[0,1,0,2];[3,0,0,0];[0,4,5,6]};
>> Y = cellfun(@nnz,X)
Y =
2
1
3
>> sum(Y)
ans = 6
PS: if you don't actually need all of those intermediate values, why not use the much simpler and more efficient code that I gave to your last question:
idx = cellfun('isclass',TrajCompact,'char');
vec = 0:4;
for k = numel(vec):-1:1
rgx = sprintf('%d.+?%d',vec(k),vec(k));
tmp = regexp(TrajCompact(idx),rgx);
cnt(k) = sum(cellfun('prodofsize',tmp));
end
2 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!