• Viernes 1 de Noviembre de 2024, 11:23

Autor Tema:  Como saber si un vector está dentro de otro  (Leído 2414 veces)

Richi254

  • Miembro activo
  • **
  • Mensajes: 56
  • Nacionalidad: es
    • Ver Perfil
Como saber si un vector está dentro de otro
« en: Miércoles 4 de Febrero de 2009, 13:36 »
0
Hola amigos:
   Tengo un problemilla, quisiera saber si un vector está dentro de otro, he estado usando la función findstr(A,B) que me da la posición en la que se encuentra uno dentro del otro, con esto me valdría. Pero no sé si es que esta función tiene un límite de parámetros, porque cuando hago esto por ejemplo:
>>A=[1 2 3 4 5 6 7 8 9];
>>B=[4 5 6];
>>findstr(A,B)
ans=
       4
En este caso me vale, es decir, es una forma de saber que el vector B está dentro del A, el problema está en que si hago esto:

>>A=1:0.001:5;
>>B=2:0.001:3;   % Es evidente de que B está dentro de A ¿no?
>>findstr(A,B)
ans=
      []

NO SALE! no sé porqué es, y como habreis deducido lo que necesito es poder hacerlo como en el segundo caso. ¿Podría alguién ayudarme?¿Hay alguna función para esto? Habia pensado hacerlo con dos bucles for e ir comparando elemento a elemento pero me gustaría saber antes si hay alguna función similar a la findstr que sea capaz de hacerlo.
¡GRACIAS!

betopin

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
    • http://www.programasenc.blogspot.com
Re: Como saber si un vector está dentro de otro
« Respuesta #1 en: Lunes 9 de Febrero de 2009, 23:18 »
0
Te marca esa respuesta...o error ...como lo quieras ver....porque ese comando esta pensado para caracteres y numeros enteros

Saludos

Richi254

  • Miembro activo
  • **
  • Mensajes: 56
  • Nacionalidad: es
    • Ver Perfil
Re: Como saber si un vector está dentro de otro
« Respuesta #2 en: Martes 10 de Febrero de 2009, 10:04 »
0
Ok, tienes razón, el problema estaba en la descomposición con numeros decimales esta 1:0.001:5; He hecho una transformación sencilla multiplicando los valores límites por 10^(nº de decimales de presición deseado) para hacer la descomposición de uno en uno y ya está.
GRACIAS.

EJ: Si quiero saber si el vector formado por A=2:0.001:5; está dentro del B=1:0.001:9; Lo que hago es:
A.*10^3
B.*10^3
findstr(A,B)
if ans>=1
encontrado=1;
else
encontrado=0;
end