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

MATLAB - Funções


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

As funções operam em variáveis ​​dentro de seu próprio espaço de trabalho, que também é chamado de espaço de trabalho local , separado do espaço de trabalho que você acessa no prompt de comando do MATLAB, que é chamado de espaço de trabalho base .

As funções podem aceitar mais de um argumento de entrada e podem retornar mais de um argumento de saída.

A sintaxe de uma instrução de função é −
function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

Exemplo


A seguinte função chamada mymax deve ser escrito em um arquivo chamado mymax.m . Leva cinco números como argumento e retorna o máximo dos números.

Crie um arquivo de função, chamado mymax.m e digite o seguinte código nele -
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

A primeira linha de uma função começa com a palavra-chave função . Dá o nome da função e a ordem dos argumentos. Em nosso exemplo, o mymax função tem cinco argumentos de entrada e um argumento de saída.

As linhas de comentário que vêm logo após a instrução da função fornecem o texto de ajuda. Essas linhas são impressas quando você digita −
help mymax

O MATLAB executará a instrução acima e retornará o seguinte resultado -
This function calculates the maximum of the
   five numbers given as input

Você pode chamar a função como -
mymax(34, 78, 89, 23, 11)

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans = 89

Funções anônimas


Uma função anônima é como uma função inline em linguagens de programação tradicionais, definida em uma única instrução MATLAB. Ele consiste em uma única expressão MATLAB e qualquer número de argumentos de entrada e saída.

Você pode definir uma função anônima diretamente na linha de comando do MATLAB ou dentro de uma função ou script.

Dessa forma, você pode criar funções simples sem precisar criar um arquivo para elas.

A sintaxe para criar uma função anônima a partir de uma expressão é
f = @(arglist)expression

Exemplo


Neste exemplo, escreveremos uma função anônima chamada power, que receberá dois números como entrada e retornará o primeiro número elevado à potência do segundo número.

Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
power = @(x, n) x.^n;
result1 = power(7, 3)
result2 = power(49, 0.5)
result3 = power(10, -10)
result4 = power (4.5, 1.5)

Quando você executa o arquivo, ele exibe -
result1 =  343
result2 =  7
result3 =  1.0000e-10
result4 =  9.5459

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


Qualquer função diferente de uma função anônima deve ser definida em um arquivo. Cada arquivo de função contém uma função primária necessária que aparece primeiro e qualquer número de subfunções opcionais que vem depois da função primária e usada por ela.

As funções primárias podem ser chamadas de fora do arquivo que as define, seja da linha de comando ou de outras funções, mas as subfunções não podem ser chamadas da linha de comando ou de outras funções, fora do arquivo de função.

As subfunções são visíveis apenas para a função primária e outras subfunções dentro do arquivo de função que as define.

Exemplo


Vamos escrever uma função chamada quadrática que calcularia as raízes de uma equação quadrática. A função teria três entradas, o coeficiente quadrático, o coeficiente linear e o termo constante. Isso devolveria as raízes.

O arquivo de função quadrático.m conterá a função primária quadrático e a subfunção disco , que calcula o discriminante.

Crie um arquivo de função quadratic.m e digite o seguinte código nele -
function [x1,x2] = quadratic(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficients of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of quadratic

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

Você pode chamar a função acima no prompt de comando como -
quadratic(2,4,-4)

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans = 0.7321

Funções aninhadas


Você pode definir funções dentro do corpo de outra função. Estas são chamadas de funções aninhadas. Uma função aninhada contém um ou todos os componentes de qualquer outra função.

As funções aninhadas são definidas no escopo de outra função e compartilham o acesso ao espaço de trabalho da função que as contém.

Uma função aninhada segue a seguinte sintaxe -
function x = A(p1, p2)
...
B(p2)
   function y = B(p3)
   ...
   end
...
end

Exemplo


Vamos reescrever a função quadrática , do exemplo anterior, porém, desta vez a função do disco será uma função aninhada.

Crie um arquivo de função quadratic2.m e digite o seguinte código nele -
function [x1,x2] = quadratic2(a,b,c)
function disc  % nested function
d = sqrt(b^2 - 4*a*c);
end   % end of function disc

disc;
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end   % end of function quadratic2

Você pode chamar a função acima no prompt de comando como -
quadratic2(2,4,-4)

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans =  0.73205

Funções privadas


Uma função privada é uma função primária que é visível apenas para um grupo limitado de outras funções. Se você não quiser expor a implementação de uma(s) função(ões), poderá criá-la como funções privadas.

As funções privadas residem em subpastas com o nome especial privado .

Eles são visíveis apenas para funções na pasta pai.

Exemplo


Vamos reescrever o quadrático função. Desta vez, porém, o disco função que calcula o discriminante, será uma função privada.

Crie uma subpasta chamada privada no diretório de trabalho. Armazene o seguinte arquivo de função disc.m nele -
function dis = disc(a,b,c) 
%function calculates the discriminant
dis = sqrt(b^2 - 4*a*c);
end      % end of sub-function

Crie uma função quadratic3.m em seu diretório de trabalho e digite o seguinte código nele -
function [x1,x2] = quadratic3(a,b,c)

%this function returns the roots of 
% a quadratic equation.
% It takes 3 input arguments
% which are the co-efficient of x2, x and the 
%constant term
% It returns the roots
d = disc(a,b,c); 

x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end      % end of quadratic3

Você pode chamar a função acima no prompt de comando como -
quadratic3(2,4,-4)

O MATLAB executará a instrução acima e retornará o seguinte resultado -
ans =  0.73205

Variáveis ​​Globais


Variáveis ​​globais podem ser compartilhadas por mais de uma função. Para isso, você precisa declarar a variável como global em todas as funções.

Se você quiser acessar essa variável do espaço de trabalho base, declare a variável na linha de comando.

A declaração global deve ocorrer antes que a variável seja realmente usada em uma função. É uma boa prática usar letras maiúsculas para os nomes das variáveis ​​globais para distingui-las de outras variáveis.

Exemplo


Vamos criar um arquivo de função chamado average.m e digite o seguinte código nele -
function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end

Crie um arquivo de script e digite o seguinte código nele -
global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)

Quando você executa o arquivo, ele exibirá o seguinte resultado -
av =  35.500

MATLAB

  1. 10 funções populares no Stratasys Insight
  2. Funções C++ com exemplos de programas
  3. Funções do Python Lambda com EXEMPLOS
  4. Funções Verilog
  5. C - Funções
  6. MATLAB - Visão geral
  7. MATLAB - Variáveis
  8. MATLAB - Comandos
  9. MATLAB - Tipos de dados
  10. MATLAB - Matriz