SoloCodigo

Programación Específica => Matlab => Mensaje iniciado por: cucu en Jueves 21 de Mayo de 2009, 20:37

Título: evitar bucles
Publicado por: cucu en Jueves 21 de Mayo de 2009, 20:37
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
Título: Re: evitar bucles
Publicado por: Geo en Jueves 21 de Mayo de 2009, 23:46
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.
Título: Re: evitar bucles
Publicado por: cucu en Viernes 22 de Mayo de 2009, 09:17
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
Título: Re: evitar bucles
Publicado por: Geo en Lunes 25 de Mayo de 2009, 03:34
Una forma un tanto "burda":