Effacer les filtres
Effacer les filtres

Comparing characters in a matrix

1 vue (au cours des 30 derniers jours)
Mini
Mini le 25 Fév 2013
I have a (nx1) matrix,M, that stores a list of characters and I need to iterate through a loop and keep comparing the i-th character in the matrix with a temp character.
But I'm not sure how to do this, i tried using M{i,1}== tmp and strcmp(M{i,1},tmp) but neither seem to work. Please help, thank you so much!
  5 commentaires
Mini
Mini le 25 Fév 2013
cmd = ['tesseract ',file,' tmp -psm 10']; %this is a command to run OCR and will save the character returned in a tmp.txt file
system(cmd);
%save temp results
f2 = fopen('tmp.txt','r');
tmp = fgets(f2); %this is the tmp character I want to compare against
if strcmp(M(i),tmp)
count = count+1;
end; if true
% code
end
Mini
Mini le 25 Fév 2013
oh dear I realised my mistake... its not working because the characters in M are stored with the apostrophes in the format: 'U','C','Y'... but in the variable tmp, the character are just stored as: U, C, Y... is there a way to solve this kind of problem?

Connectez-vous pour commenter.

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 25 Fév 2013
Modifié(e) : Azzi Abdelmalek le 25 Fév 2013
strcmp(M(i),tmp)
  9 commentaires
Azzi Abdelmalek
Azzi Abdelmalek le 25 Fév 2013
Modifié(e) : Azzi Abdelmalek le 25 Fév 2013
The problem is tmp is not equal to 'U' but to something like
'U ' % with spaces
Try this to remove space from tmp
strcmp(M(1),strtrim(tmp))
Mini
Mini le 25 Fév 2013
omg this works, thank you sooooooooo much!!! (: Hope you have a great week ahead!! (:

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 25 Fév 2013
Modifié(e) : Matt J le 25 Fév 2013
count=sum([M{:}]==tmp)
  4 commentaires
Mini
Mini le 25 Fév 2013
oh thank you for the explanation... now i understand where you are coming from.. but this tmp changes value in every iteration, so in that case I will have to check it in every iteration right?
Matt J
Matt J le 25 Fév 2013
Modifié(e) : Matt J le 25 Fév 2013
Not if there's a vectorized way of creating tmp. If M and tmp are string vectors of the same length, you can still do
count=sum(M==tmp)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by