2012-07-29 15 views
9

asume que tiene una colección Un:¿Cómo uso el mapa con función personalizada en Octave?

A = [0:6:100] 

Y tengo una mentira función (n):

function retval=fib(n) 
    g1=(1+5^.5)/2 
    g2=(1-5^.5)/2 
    retval=(1/5^.5)*(g1^n - g2^n) 
endfunction 

tengo la intención de ser capaz de aplicar fib (n) en A, y guárdelo en una colección diga B, donde B [i, j] es (i, fib (i)), entonces puedo trazar i vs fib (i) y ver los resultados en un gráfico.

Por favor, asesorar sobre cómo puedo usar mapa para obtener esta colección deseada B.

Respuesta

13

Puede hacerlo de esta manera:

map(@fib, A) 

El @ hace fib en un mango función. Tenga en cuenta que se desaprueba map y se debe utilizar en lugar arrayfun:

arrayfun(@fib, A) 
+1

El 'arrayfun' lo hizo por mí (después de actualizar a 3.6.2), que no tenía que incluso instalar el paquete' 'para miscelánea use esto ('map' lo requiere). Gracias – nemesisfixx

+0

Y si tiene una función con varios parámetros de entrada, use esto: 'arrayfun (@ (o) MyFunc (o, 5, 'up'), A)'. En este ejemplo, con dos parámetros fijos, un valor escalar '5' y una cadena' 'up''. – erik

Cuestiones relacionadas