Función de mapa en MATLAB

Una función de mapa básicamente toma los elementos de la array y aplica una función a cada elemento. La salida resultante tiene la misma forma que la array, pero los valores son el resultado de la función. En MATLAB, hay una función similar llamada arrayfun(), que podemos usar para lograr la misma tarea. La salida de esta función de array puede tener cualquier tipo de datos.

Sintaxis:

X = arrayfun(funcion,A)

Parámetros:

  • fun: Es una función que vamos a mapear en cada elemento del arreglo A.
  • A: Es la array en la que vamos a mapear la función.
  • X: en la variable X, la salida se almacenará desde la función de mapa.

Aquí, arrayfun(funct,A) aplica la función funct a los elementos de la array A. arrayfun luego concatena las salidas de funct en la array de salida X , de modo que para el i-ésimo elemento de A , X(i) = funct(A(i )). 

La función de argumento de entrada es un identificador de función para una función que toma un argumento de entrada y devuelve un escalar. 

Pongamos un ejemplo para una mejor comprensión:

Ejemplo 1:

Matlab

% MAP function in MatLab
  
% creating a dummy array 
% on which we are going to map a function
A = [1,2,3,4,5,6,7,8,9,10];
  
% Applying arrayfun()  
output = arrayfun(@(x) x*2, A);
  
% displaying output
fprintf("output is :");
disp(output);

Producción:

Aplicando arrayfun()

En la función anterior, primero hemos creado una array a la que vamos a asignar una función personalizada. La costumbre es x*2, es decir , multiplicar cada elemento de la array por 2.

 Entonces estamos usando arrayfun(@(x) x*2, A), analicemos esta declaración aquí arrayfun(fun,array) es la sintaxis general para mapear una función a la array. Estamos usando @(x) y x*2 en la declaración donde x*2 es la función personalizada que estamos aplicando y @(x) actúa como cada elemento de esa array A. Después de eso, estamos almacenando la salida a una variable y luego usando la función fprintf imprimimos una string en pantalla y usando la función disp mostramos la salida.

Ejemplo 2:

Matlab

% MAP function in MatLab
  
% creating two dummy arrays 
% on which we are going to map a function
A = [1,2,3,4,5];
B = [6,7,8,9,10];
  
% Applying arrayfun()  
output = arrayfun(@(x,y) x*y, A,B);
  
% displaying output
fprintf("Product is :");
disp(output);

Producción:

Producto a dos arreglos usando arrayfun()

Publicación traducida automáticamente

Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *