Azzera filtri
Azzera filtri

Comparing characters in a matrix

1 visualizzazione (ultimi 30 giorni)
Mini
Mini il 25 Feb 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 Commenti
Mini
Mini il 25 Feb 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 il 25 Feb 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?

Accedi per commentare.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 25 Feb 2013
Modificato: Azzi Abdelmalek il 25 Feb 2013
strcmp(M(i),tmp)
  9 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 25 Feb 2013
Modificato: Azzi Abdelmalek il 25 Feb 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 il 25 Feb 2013
omg this works, thank you sooooooooo much!!! (: Hope you have a great week ahead!! (:

Accedi per commentare.

Più risposte (1)

Matt J
Matt J il 25 Feb 2013
Modificato: Matt J il 25 Feb 2013
count=sum([M{:}]==tmp)
  4 Commenti
Mini
Mini il 25 Feb 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 il 25 Feb 2013
Modificato: Matt J il 25 Feb 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)

Accedi per commentare.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by