English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Uma função é um conjunto de instruções que executam uma tarefa juntos. No MATLAB, as funções são definidas em arquivos separados. O nome do arquivo deve ser o mesmo que o nome da função.
A função opera nas suas próprias áreas de trabalho (também conhecidas como áreas de trabalho locais) nas variáveis, diferindo da área de trabalho acessada na linha de comando do MATLAB (conhecida como área de trabalho básica).
As funções podem aceitar múltiplos parâmetros de entrada e podem retornar múltiplos parâmetros de saída.
A sintaxe da declaração da função é-
function [out1, out2, ..., outN] = myfun(in1, in2, in3, ..., inN)
abaixo do nomemymaxA função deve ser escrita no arquivo chamadomymax.mdo arquivo. Ele aceita cinco números como parâmetros e retorna o número maior.
Crie um arquivo de função chamado mymax.m e insira o seguinte código no arquivo.-
function max = mymax(n1, n2, n3, n4, n5) %Esta função é usada para calcular %cinco números de entrada 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 da função começa com a palavra-chave function no início . Isso fornece o nome da função e a ordem dos parâmetros. Em nosso exemplo,mymaxA função tem cinco parâmetros de entrada e um parâmetro de saída.
As linhas de comentário após a declaração da função fornecem o texto de ajuda. Quando você inserir o seguinte conteúdo, essas linhas serão impressas:
help mymax
O MATLAB executará as seguintes instruções e retornará o seguinte resultado-
Esta função calcula o máximo dos cinco números fornecidos como entrada
Você pode chamar a função como-
mymax(34, 78, 89, 23, 11)
O MATLAB executará as seguintes instruções e retornará o seguinte resultado-
ans = 89
As funções anônimas são como funções inline em linguagens de programação tradicionais, definidas em uma única sentença do MATLAB. Elas consistem em uma expressão do MATLAB e um número arbitrário de parâmetros de entrada e saída.
Você pode definir diretamente uma função anônima na linha de comando do MATLAB ou em funções ou scripts.
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
Neste exemplo, escreveremos uma função anônima chamada power, que recebe dois números como entrada e eleva o primeiro número à potência do segundo número.
Crie um arquivo de script e insira o seguinte código-
power = @(x, n) x.^n; result1 =7, 3) result2 =49, 0.5) result3 =10, -10) result4 =4.5, 1.5)
Quando o arquivo é executado, ele exibe-
result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459
Deve ser definida qualquer função fora da função anônima no arquivo. Cada arquivo de função contém uma função principal necessária que apareceu primeiro, seguida por qualquer número de funções secundárias opcionais usadas após a função principal.
É possível chamar a função principal de fora do arquivo do arquivo principal (da linha de comando ou de outras funções), mas não é possível chamar funções de subarquivo fora do arquivo de função.
As subfunções são visíveis apenas para a função principal e para outras subfunções definidas no arquivo de função que as define.
Vamos escrever uma função chamada quadratic para calcular as raízes de uma equação quadrática. A função contém três entradas: coeficiente quadrático, coeficiente linear e constante. Ele retornará as raízes.
O arquivo de função quadratic.m conterá a função principal quadratic e a subfunção disc, que calcula o discriminante.
Crie um arquivo de função quadratic.m e insira o seguinte código
function [x1,x2] = quadratic(a,b,c) % esta função retorna % equação quadrática. % ele precisa3parâmetros de entrada %x2,x e % constante % ele retorna as raízes d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % fim da função quadratic function dis = disc(a,b,c) % cálculo do discriminante da função dis = sqrt(b^2 - 4*a*c); end % fim da subfunção-function
Você pode chamar essas funções a partir da linha de comando, conforme mostrado a seguir:
quadratic(2,4,-4)
O MATLAB executará as seguintes instruções e retornará o seguinte resultado-
ans = 0.7321
Você pode definir uma função dentro do corpo de outra função. Essas são chamadas de funções aninhadas. As funções aninhadas contêm qualquer ou todos os componentes de qualquer outra função.
As funções aninhadas são definidas dentro do escopo de outra função, elas compartilham o acesso ao espaço de trabalho da função contida.
A sintaxe das funções aninhadas é a seguinte-
function x = A(p1, p2) ... B(p2) function y = B(p3) ... end ... end
Vamos reescrever o exemplo anteriorquadraticFunção. No entanto, desta vez, a função disc será uma função aninhada.
Crie um arquivo de funçãoquadratic2m,e insira o seguinte código-
function [x1,x2,x2] = quadratic function disc % função aninhada d = sqrt(b^2 - 4*a*c); end % fim da função disc disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % fim da função quadratic2
Você pode chamar a função acima a partir da linha de comando, conforme mostrado a seguir:
quadratic2(2,4,-4)
O MATLAB executará as seguintes instruções e retornará o seguinte resultado-
ans = 0.73205
As funções privadas são funções principais que são visíveis apenas para um grupo limitado de outras funções. Se você não quiser tornar pública a implementação da função function(s), pode criá-las como funções privadas.
As funções privadas estão localizadas em uma subpasta com o nome especial Private.
Eles são visíveis apenas para as funções no diretório pai.
Vamos reescreverquadraticA função. No entanto, desta vez, a função disc calculará o discriminante e será uma função privada.
Crie uma subpasta chamada private no diretório da pasta de trabalho, e armazene o seguinte arquivo de função disc.m dentro dela
function dis = disc(a,b,c) % cálculo do discriminante da função dis = sqrt(b^2 - 4*a*c); end % fim da subfunção
Crie uma função chamada quadratic no seu diretório de trabalho3m, e insira o seguinte código-
function [x1,x2,x3] = quadratic (a,b,c) % de uma equação do segundo grau. Esta função retorna Ele precisa3parâmetros de entrada % Elas são os2,x e % Coeficiente Constante % Ele retorna as raízes d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end %Fim do quadratic3
Você pode chamar a função acima a partir da linha de comando, conforme mostrado a seguir:
quadratic3(2,4,-4)
O MATLAB executará as seguintes instruções e retornará o seguinte resultado-
ans = 0.73205
Variáveis globais podem ser compartilhadas por várias funções. Para isso, você precisa declarar a variável como global em todas as funções.
Se você quiser acessar a variável a partir do espaço de trabalho básico, declare a variável na linha de comando.
As declarações globais devem ocorrer antes de a variável ser usada no interior da função. É bom usar letras maiúsculas para o nome das variáveis globais, para distingui-las de outras variáveis.
Vamos criar um arquivo de função chamado average.m e insira o seguinte código-
function avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; end
Crie um arquivo de script e insira o seguinte código-
global TOTAL; TOTAL = 10; n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42]; av = average(n)
Quando você executar o arquivo, ele exibirá o seguinte resultado-
av = 35.500