Borrar filtros
Borrar filtros

Comparing characters in a matrix

1 visualización (últimos 30 días)
Mini
Mini el 25 de Feb. de 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 comentarios
Mini
Mini el 25 de Feb. de 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 el 25 de Feb. de 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?

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 25 de Feb. de 2013
Editada: Matt J el 25 de Feb. de 2013
count=sum([M{:}]==tmp)
  4 comentarios
Mini
Mini el 25 de Feb. de 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 el 25 de Feb. de 2013
Editada: Matt J el 25 de Feb. de 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)

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by