Crie uma função no MATLAB

Ammar Ali 25 novembro 2021
Crie uma função no MATLAB

Este tutorial irá discutir a criação de funções usando a variável function no MATLAB.

Crie uma função usando a variável function no MATLAB

Uma função no Matlab consiste principalmente em três coisas: saída, entrada e nome da função. Para definir uma função, usamos a função variável e, em seguida, definimos as saídas, o nome da função e as entradas da função. Depois disso, vamos escrever nosso código dentro da função. O nome da função deve começar com um caractere alfabético e um nome de função pode conter números, dígitos e sublinhados. Para indicar o final de uma função, podemos usar a variável end. Por exemplo, veja o código abaixo.

function outputs = function_Name(inputs)
    Your code
end

Uma função pode ter apenas uma saída. Por exemplo, vamos definir uma função que aceitará um array de números e a saída da função será a média do array. Veja o código abaixo.

vect = [1 3 5]
averg = average(vect)


function a = average(v)
a = mean(v);
end

Resultado:

vect =

     1     3     5


averg =

     3

Uma função também pode ter duas saídas. Por exemplo, vamos definir uma função que aceitará um array e nos dará a média do array e o desvio padrão. Veja o código abaixo.

vect = [1 3 5]
[averg, stanD] = average(vect)


function [a,s] = average(v)
a = mean(v);
s = std(v);
end

Resultado:

vect =

     1     3     5


averg =

     3


stanD =

     2

Podemos definir uma função em um arquivo de script, mas temos que defini-la no final do código. Você também pode definir funções múltiplas em um único arquivo, e todas as funções devem estar no final do código. Uma função também pode chamar outra função. Por exemplo, você pode definir duas funções e a segunda função pode chamar a primeira função. Também podemos definir funções com validação de entrada para que possamos verificar as entradas. Por exemplo, vamos definir uma função que irá verificar a entrada, seja um inteiro ou não, e se for um inteiro, ela fará a operação; caso contrário, ele enviará um erro. Podemos fazer isso usando os argumentos variáveis. Veja o código abaixo.

vect = 'a';
[averg, stanD] = average(vect)


function [a,s] = average(v)
arguments
        v {mustBeNumeric, mustBeFinite}
    end
a = mean(v);
s = std(v);
end

Resultado:

Error using Untitled>average
Invalid argument at position 1. Value must be numeric.

Error in Untitled (line 3)
[averg, stanD] = average(vect)

No código acima, passamos uma string em vez de um array numérica, e o Matlab mostrou um erro que diz que o valor deve ser numérico. Lembre-se de que, ao chamar uma função, você deve fornecer as entradas e saídas específicas. Por exemplo, se definimos uma função com duas entradas e duas saídas, devemos definir duas entradas e duas saídas durante a chamada da função; caso contrário, irá mostrar um erro, mas se você quiser definir uma função com um número variável de saídas e entradas. Podemos fazer isso usando a variável varargin para definir as entradas de variáveis ​​de uma função. Podemos usar a variável nargin que nos diz quantas entradas o usuário inseriu. Depois disso, podemos especificar as condições para as entradas. Por exemplo, podemos definir requisitos que se o usuário inserir uma entrada, esta será a saída, e se o usuário inserir duas entradas, esta será a saída e assim por diante. Por exemplo, vamos definir uma função que nos dará o número de entradas inseridas pelo usuário. Veja o código abaixo.

NumInputs('a',2,"start")

function NumInputs(varargin)
    disp("Number of inputs: " + nargin)
    celldisp(varargin)
end

Resultado:

Number of inputs: 3
 
varargin{1} =
 
a
 
 
varargin{2} =
 
     2

 
 
varargin{3} =
 
start

Também podemos definir saídas variáveis ​​em uma função usando a variável varargout, e podemos acompanhar quantas saídas o usuário definiu usando a variável nargout. Por exemplo, vamos definir uma função que nos dará a média e o desvio padrão. Se o usuário definir apenas uma saída, a função retornará apenas a média do array. Se o usuário definir duas variáveis ​​de saída, a função retornará o desvio padrão e a média do array. Veja o código abaixo.

v = [1 2 6];
[m]= AVGSTD(v)
[mean,st] = AVGSTD(v)

function [m,varargout] = AVGSTD(v)
    m = mean(v);
    if(nargout>1)
        varargout{1} = std(v);
    end
end

Resultado:

m =

     3


mean =

     3


st =

    2.6458

No código acima, chamamos a função AVGSTD() duas vezes, a primeira vez com apenas uma saída e a segunda vez com duas saídas. Na primeira chamada, a função retornou apenas a média, mas na segunda chamada, a função retornou a média e o desvio padrão. Também podemos validar o número de saídas usando o argumento variável. Por exemplo, se o usuário tentar inserir mais de duas variáveis ​​na saída, podemos mostrar a ele um erro de que esta função só aceita duas saídas. Também podemos definir funções reutilizáveis ​​no Matlab, que serão armazenadas em um arquivo, e podemos chamá-las usando o nome do arquivo. Para definir tal função, basta nomear o arquivo Matlab com o nome da função. Por exemplo, se a função tiver o nome médio, o arquivo Matlab deve ter o mesmo nome. Para chamar a função, temos que criar outro arquivo de script no mesmo diretório onde o arquivo de função foi colocado, e podemos chamar a função usando seu nome dentro do arquivo de script.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artigo relacionado - MATLAB Function