Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> MATLAB

Funções no MATLAB: Definição, Workspace, Entradas e Saídas

Uma função é um grupo de instruções que executam uma tarefa. No MATLAB, funções são definidas em arquivos separados. O nome do arquivo deve coincidir com o nome da função.

Funções operam em seu próprio workspace (workspace local), separado do workspace base (linha de comando). Podem aceitar múltiplos argumentos de entrada e retornar múltiplos argumentos de saída.

Sintaxe Básica

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

Exemplo: Função mymax

Arquivo mymax.m:

function max = mymax(n1, n2, n3, n4, n5)
% This function calculates the maximum of the five numbers given as input
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

Chamada:

mymax(34, 78, 89, 23, 11)

Resultado: ans = 89

Ajuda com help mymax exibe o comentário inicial.

Funções Anônimas

Definidas em uma única linha, sem necessidade de arquivo separado. Sintaxe:

f = @(arglist)expression

Exemplo: Potência

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

Funções Primárias e Subfunções

Cada arquivo de função contém uma função primária (obrigatória, primeira) e zero ou mais subfunções. Subfunções só são visíveis dentro do mesmo arquivo.

Exemplo: Equação Quadrática com Subfunção

Arquivo quadratic.m:

function [x1,x2] = quadratic(a,b,c)
% Returns roots of quadratic equation
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end

function dis = disc(a,b,c)
% Calculates discriminant
dis = sqrt(b^2 - 4*a*c);
end

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

Funções Aninhadas (Nested Functions)

Definidas dentro do corpo de outra função. Compartilham o workspace da função que as contém.

Exemplo: Quadrática com Função Aninhada

Arquivo quadratic2.m:

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

Chamada: quadratic2(2,4,-4) → ans = 0.73205

Funções Privadas

Funções primárias visíveis apenas para funções na pasta pai. Ficam em subpasta chamada private.

Exemplo: Discriminante como Função Privada

Pasta private/disc.m:

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

Arquivo quadratic3.m na pasta pai:

function [x1,x2] = quadratic3(a,b,c)
d = disc(a,b,c);
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end

Chamada: quadratic3(2,4,-4) → ans = 0.73205

Variáveis Globais

Compartilhadas entre múltiplas funções. Devem ser declaradas global em todas as funções (e no workspace base, se necessário). Boa prática: usar nomes em maiúsculas.

Exemplo

Arquivo 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)

Resultado: av = 35.5

MATLAB

  1. 10 Recursos Essenciais do Insight para Otimizar Impressão FDM Stratasys
  2. Funções em C++ Explicadas com Exemplos Práticos de Código
  3. Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas
  4. Dominando Funções em Verilog para Design RTL Eficiente
  5. Dominando Funções em C: Estrutura, Declaração e Boas Práticas
  6. MATLAB: Visão Geral Abrangente do Ambiente Líder em Computação Numérica
  7. Entendendo Variáveis no MATLAB: Fundamentos e Exemplos
  8. Comandos Essenciais do MATLAB para Computação Eficiente
  9. Entendendo Tipos de Dados no MATLAB: Guia Completo
  10. Domine Matrizes no MATLAB: Criação, Referência e Manipulação de Dados