Matlab - Comparar strings

 
Vista:

Comparar strings

Publicado por Juan (27 intervenciones) el 12/04/2012 16:57:19
Hola, me gustaría saber si existe un comando que permita comparar strings. Además, me gustaría que por ejemplo no lo comparase totalmente, si no que quizás sólo compare el final.

Pongo un ejemplo, comparar las ultimas 3 letras:

a='Rotacion';

b='Salvaje';

c='Cancion';

El resultado es que a-c terminan igual.

No hace falta que me hagáis el programa, me sirve con que me podáis indicar algún comando.
Un saludo, y sobre todo, gracias¡¡
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Comparar strings

Publicado por Gerardo (104 intervenciones) el 12/04/2012 20:39:20
Hola Juan!

Te puedo aconsejar lo siguiente:
Usar bucles para determinar las nuevas palabras compuestas por las 3 ultimas letras:
Ejm:

1
2
3
4
anew=[];
for i=length(a)-2:length(a)
    anew=[anew a(i)];
end


Para comparar las palabras entre si puedes almacenarlas como celdas:
Ejm:

1
group={anew,bnew,cnew};


luego mediante un bucle puedes comparar mediante el comando strcmp
que devuelve respuestas logicas 1 o 0.
Ejm:

1
strcmp(group{i},group{j})


y si son iguales te van a dar como respuesta 1 o 0 en caso contrario

Suerte! =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Comparar strings

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/04/2012 15:37:28
hola.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>> strcmp('hola','pedro')
ans =
 
     0
 
>> strcmp('hola','hola')
ans =
 
     1
 
>> h='hola'; m='pedro'; strcmp(h(end),m(end))
ans =
     0
 
>> h='hola', m='pedra'; strcmp(h(end),m(end))
ans =
 
     1



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comparar strings

Publicado por Juan (27 intervenciones) el 13/04/2012 17:20:04
Muchas gracias Gerardo y Jose Jeremías, el comando que me han dicho me ha servido. Lo he utilizado y todo perfecto. Sin embargo, tengo una duda puntual, si obtengo un string de un archivo.txt, esto no me funciona. Por ejemplo:

Tengo: a='Hola';

Tengo un Mundo.txt que contiene la palabra: Hola

b=importdata(Mundo.txt)

strcmp(a,b(end-3:end))

Me sale error:

1
2
3
??? Subscript indices must either be real positive integers or logicals.
 
Error in ==>b(end-3:end)


¿Puede ser porque "b" no es un string? Los datos que obtengo de un .txt, están en ASCII, ¿tengo que pasarlos a string?

Un saludo, y gracias, que a través de vosotros estoy aprendiendo muchísimo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Comparar strings

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/04/2012 17:49:06
HOla JUan.
Eso error ya te habia arreglado cuando enviastes tu guide ami correo y te llegue a contestar.
Revisa bien los guides que te envio.
Ademas estas tando vuelta y vuelta en un solo punto ya varios dias.
Mejor seria q buscaras una asesoria personal, por el lugar que vives, por alli debe haber personas que conoscan matlab y ellos te pueden ayudar con más eficaz. Ademas tus preguntas son tan cortas, no pones toda la informacion necesitario para que te contesten. Y date un tiempo para investigar mas sobre matlab en el internet, descargar libros y leelos con detalle. Sin buscar informacion en la red, es dificil avanzar en lo que uno esta haciendo, yo mismo cuando alguien hace una pregunta en el foro y no conosco el tema del que estan preguntando me pongo a investigar en la red, veo videos acerca del tema, busco pdf donde haya informacion sobre ese punto, y luego con esa informaicon puedo contestar las preguntas de foro con eficaz.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Comparar strings

Publicado por Gerardo (104 intervenciones) el 13/04/2012 19:25:52
Hola Juan!

Quizas se deba a que la palabra que contenga el .txt tenga menos de 4 letras.
Puede ser que si longitud de b=3, y tu al poner b(end-3:end) este queriendo tomar desde 0 hasta 3 y matlab te va a botar error, pero solo es una suposicion. En todo caso como dice JJ pon mas informacion para poder ayudarte.

Suerte! =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comparar strings

Publicado por Juan (27 intervenciones) el 22/04/2012 19:24:11
Hola Gerardo, ¿sería posible que te enviase a tu e-mail mi GUIDE para poderte explicar mejor mi problema? Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar