SoloCodigo

Programación Específica => Matlab => Mensaje iniciado por: Richi254 en Martes 7 de Octubre de 2008, 12:05

Título: Como encontrar una cadena de carácteres dentro de un vector?
Publicado por: Richi254 en Martes 7 de Octubre de 2008, 12:05
A ver lo que quisiera es poder encontrar dentro de un vector enorme de caracteres, una cadena concreta. Por ejemplo, si mi vector es así:

vector=
f89
FLASX024Y255
ADD11,0.075
*D11

Cada caracter es una posición del vector, es decir, vector(3)=9, y vector(8)=A, los retornos de carro(intros)lo toma como dos caracteres en blanco, o sea dos espacios, y los números como carácteres también(código ASCII). Entonces si quisiera encontrar dentro del vector la cadena:ADD11, por ejemplo, como lo podría hacer?
GRACIAS
Título: Re: Como encontrar una cadena de carácteres dentro de un vector?
Publicado por: Toph en Martes 7 de Octubre de 2008, 22:22
Cita de: "Richi254"
A ver lo que quisiera es poder encontrar dentro de un vector enorme de caracteres, una cadena concreta. Por ejemplo, si mi vector es así:

vector=
f89
FLASX024Y255
ADD11,0.075
*D11

Cada caracter es una posición del vector, es decir, vector(3)=9, y vector(8)=A, los retornos de carro(intros)lo toma como dos caracteres en blanco, o sea dos espacios, y los números como carácteres también(código ASCII). Entonces si quisiera encontrar dentro del vector la cadena:ADD11, por ejemplo, como lo podría hacer?
GRACIAS

Bueno segun entiendo no sabes en que posicion del vector esta la cadena por lo que hay que ir verificando cada elemento o por lo menos en grupos ya que no especificas si sabes la longitud de la cadena o no.
seria algo asi:
primero tendrias que recortar el vector digamos averiguar sus primeros 5 terminos  
Código: Text
  1. y=[x(1:5)]
  2.  
y luego verificar si esa "y" es igual a tu cadena con un if por ejemplo
Código: Text
  1. if y == [6,5,2]
  2.  
y ahi hacer lo que necesitas
Título: Re: Como encontrar una cadena de carácteres dentro de un vector?
Publicado por: Richi254 en Viernes 10 de Octubre de 2008, 12:22
Gracias por tu ayuda.
Al final lo conseguí de otra forma usando la función strfind, esta función se usa así:
strfind(vector,'cadena_a_buscar')

El resultado es la posición del primer caracter dentro del vector, por ejemplo:

s=[Esto es una cadena de prueba];
strfind(s,'cadena')
ans=
13


:)