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.