Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> MATLAB

Funciones en MATLAB: Definición, Workspace, Entradas y Salidas

Una función es un grupo de sentencias que realizan una tarea. En MATLAB, las funciones se definen en archivos separados. El nombre del archivo y de la función deben coincidir.

Las funciones operan en su propio workspace local, separado del workspace base (línea de comandos).

Pueden aceptar múltiples argumentos de entrada y devolver múltiples salidas.

Sintaxis Básica

function [out1,out2,...,outN] = myfun(in1,in2,in3,...,inN)

Ejemplo: Función mymax

Archivo mymax.m:

function max = mymax(n1,n2,n3,n4,n5)
% Esta función calcula el máximo de cinco números
max = n1;
if(n2 > max) max = n2; end
if(n3 > max) max = n3; end
if(n4 > max) max = n4; end
if(n5 > max) max = n5; end
end

Funciones Anónimas

Definidas en una sola línea, sin archivo separado. Sintaxis:

f = @(arglist)expression

Ejemplo: Potencia

power = @(x,n) x.^n;
result1 = power(7,3)    % 343
result2 = power(49,0.5) % 7
result3 = power(10,-10) % 1e-10
result4 = power(4.5,1.5)% 9.5459

Funciones Primarias y Subfunciones

Cada archivo de función tiene una función primaria (obligatoria, primera) y subfunciones opcionales (solo visibles dentro del archivo).

Ejemplo: Ecuación Cuadrática

Archivo quadratic.m:

function [x1,x2] = quadratic(a,b,c)
% Raíces de ecuación cuadrática
d = disc(a,b,c);           % llama a subfunción
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end

function dis = disc(a,b,c) % subfunción
dis = sqrt(b^2 - 4*a*c);
end

Llamada: quadratic(2,4,-4) → ans = 0.7321.

Funciones Anidadas (Nested Functions)

Definidas dentro del cuerpo de otra función. Comparten el workspace de la función contenedora.

Ejemplo: Quadratic con función anidada

function [x1,x2] = quadratic2(a,b,c)
function disc  % función anidada
d = sqrt(b^2 - 4*a*c);
end
disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end

Funciones Privadas

Funciones primarias visibles solo para funciones en la carpeta padre. Se colocan en subcarpeta llamada private.

Ejemplo

  1. Carpeta private/ con disc.m (función privada).
  2. Archivo quadratic3.m en carpeta padre llama a disc.

Variables Globales

Compartidas entre funciones. Declarar global VAR en cada función y en base workspace si se necesita.

Buena práctica: nombres en mayúsculas (ej. TOTAL).

Ejemplo

Archivo average.m:

function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end

Script:

global TOTAL; TOTAL = 10;
n = [34,45,25,45,33,19,40,34,38,42];
av = average(n)  % 35.5

MATLAB

  1. 10 funciones esenciales de Insight para optimizar la impresión FDM de Stratasys
  2. Funciones en C++ Explicadas con Ejemplos de Código Prácticos
  3. Dominando funciones en C: Estructura, declaración y mejores prácticas
  4. Dominar las funciones en Verilog para diseño RTL eficiente
  5. MATLAB: Visión General del Entorno Líder en Computación Numérica
  6. Variables en MATLAB: Conceptos Básicos y Ejemplos Prácticos
  7. Comandos Esenciales de MATLAB para Computación Eficiente
  8. Tipos de Datos en MATLAB: Guía Completa de Conversión y Determinación
  9. Matrices en MATLAB: Creación, Referenciación y Manipulación de Datos
  10. MATLAB - Números: Tipos, Almacenamiento y Conversión
  11. Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas