• Jueves 16 de Mayo de 2024, 22:56

Autor Tema:  evitar bucles  (Leído 1336 veces)

cucu

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
evitar bucles
« en: Jueves 21 de Mayo de 2009, 20:37 »
0
hola, me gustaría saber si es posible hacer, evitando un bucle la siguiente operación:

tengo dos vectores fila, y quiero conseguir otro que en todos sus elementos sea el mayor de los otros 2, por ejemplo:


x = [4, 7, 9];
y = [3, 8, 2];

La solución sería:

z = [4, 8, 9]

Gracias. Saludos

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: evitar bucles
« Respuesta #1 en: Jueves 21 de Mayo de 2009, 23:46 »
0
La función max hace eso precisamente:

Código: Matlab M
  1. x = [ 4 7 9 ];
  2. y = [ 3 8 2 ];
  3.  
  4. z = max( x, y )
  5.  
Lo único a notar es que los parámetros para la función max deben tener las mismas dimensiones.
La imaginación es el límite.
Hardware & Software | Mexchip

cucu

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: evitar bucles
« Respuesta #2 en: Viernes 22 de Mayo de 2009, 09:17 »
0
uyyy, que mal lo hice! esto era solo un ejemplo. En realidad lo que quiero hacer no es tan simple. En realidad lo que quiero es que hagan diferentes cosas, aver si me explico mejor con este nuevo ejemplo:

Funcion salida:

x-y -> si x >y
0 -> resto de casos

osea:

>> x=[4 7 9]

x =

4 7 9

>> y=[3 8 2]

y =

3 8 2

z = [1 0 7]

Gracias y perdón por la confusión

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: evitar bucles
« Respuesta #3 en: Lunes 25 de Mayo de 2009, 03:34 »
0
Una forma un tanto "burda":

  • resta los vectores
  • convierte el resultado a números sin signo (los números negativos se convertirán en ceros)
  • si es necesario, convierte nuevamente al tipo original
La imaginación es el límite.
Hardware & Software | Mexchip