Funções no Matlab
Vamos falar sobre como criar uma função no Matlab, certo?
O que é uma função? É um trecho de código num programa que você pode executar sempre que precisar. O código de uma função é separado do programa principal e pode estar localizado no mesmo arquivo que o programa ou em um arquivo diferente. O uso de funções permite tornar o código de um programa mais conciso e organizado.
Para definir uma função no Matlab, você precisa seguir esta sintaxe:
function [y1, y2, ...] = nome_da_funcao([x1, x2, ...])
código a ser executado
end
- As letras x1, x2... representam as variáveis de entrada que a função recebe da chamada.
- As letras y1, y2... representam as variáveis de saída que a função retorna ao programa que a chamou.
No Matlab, funções devem sempre ser adicionadas às últimas linhas de um script. Caso contrário, o script retornará um erro.
Uma vez definida uma função, você pode chamá-la de diferentes partes do programa e executá-la várias vezes.
Exemplo
Deixe-me dar-lhe um exemplo prático. Suponha que você queira escrever um novo script e criar uma função chamada "media()".
Essa função deve receber dois dados numéricos x1 e x2 como entrada e retornar a média aritmética y como saída.
Veja como você pode definir a função no Matlab:
function y = media(x1, x2)
y = (x1 + x2) / 2;
end
Agora, você pode inserir uma chamada à função "media()" no código do programa principal. Por exemplo:
m = media(2, 4);
disp(m);
function y = media(x1, x2)
y = (x1 + x2) / 2;
end
A função "media()" recebe os dois valores de entrada x1=2 e x2=4, calcula a média y = (2 + 4) / 2 = 3 e retorna o resultado y = 3 ao programa que a chamou.
O programa que fez a chamada recebe o valor de saída da função (3) e o atribui à variável "m" (m=3).
Por fim, o programa exibe o valor de "m" na tela.
3
Se desejar, você também pode fazer outra chamada à função "media()" no programa principal, passando valores diferentes como entrada. Por exemplo:
m = media(2, 4);
disp(m);
m = media(4, 6);
disp(m);
function y = media(x1, x2)
y = (x1 + x2) / 2;
end
- Nota. Como você pode ver, o programa chama a função "media()" duas vezes de dois pontos diferentes no programa principal.
- A primeira vez, passa os valores 2 e 4, recebendo 3 como resposta.
- A segunda vez, passa os valores 4 e 6, recebendo 5 como resposta.
Destra vez, a função "media()" recebe os valores de entrada x1=4 e x2=6, calcula a média y = (4 + 6) / 2 = 5 e retorna o resultado y = 5 ao programa que a chamou.
O programa que fez a chamada recebe o valor de saída da função (5), atribui-o à variável "m" (m=5) e imprime o valor de "m" na tela.
Portanto, desta vez a saída é 5.
3
5
Então, como você pode ver, definir e usar funções no Matlab é bastante simples e direto.
Isso permite que você escreva códigos mais eficientes e organizados, o que é sempre bom em qualquer linguagem de programação.
Como retornar vários valores de saída
No Matlab você pode, de fato, retornar mais de um valor de uma função. É bastante prático, na verdade.
Deixe-me mostrar-lhe um exemplo.
Suponha que temos esta função chamada "potencia" que recebe um único valor de entrada e produz dois valores de saída.
[y1, y2] = potencia(2);
disp(y1);
disp(y2);
function [y1, y2] = potencia(x)
y1 = x^2;
y2 = x^3;
end
Neste caso, a chamada [y1, y2] = potencia(2) passa um único valor de entrada x=2 para a função.
A função potencia() calcula o quadrado x2=4 e o cubo x3=8 da variável x=2 e os retorna ao programa que a chamou.
O programa que fez a chamada recebe os dois valores de saída, atribui-os às variáveis y1=4 e y2=8 e finalmente os imprime na tela.
4
8
A instrução de retorno
Mas e se quisermos sair da função antes de ela executar todas as instruções no bloco de código? É aí que entra a instrução "return".
A instrução return permite sair de uma função prematuramente.
Quando o Matlab encontra a instrução de retorno no bloco de código de uma função, ele encerra a execução dessa função e devolve o controle ao programa chamador.
Nota. Se a instrução de retorno não está presente no bloco de código, o controle retorna automaticamente ao programa chamador após a execução da última instrução no bloco da função.
Por exemplo, observe esta versão modificada da função "potência":
[y1,y2]=potencia(-2);
exibe(y1);
exibe(y2);
function [y1, y2] = potencia(x)
se x<0
y1=0
y2=0
return
fim
y1=x^2;
y2=x^3;
end
Aqui, adicionamos uma instrução "if" para verificar se o valor de entrada é negativo.
Se for, definimos os valores de saída para 0 e saímos imediatamente da função usando a instrução "return".
Isso nos permite retornar mais cedo sem executar mais nenhuma instrução no bloco de código.
Neste código de exemplo, como o valor passado é negativo (x<0), a instrução de retorno termina a execução da função potencia(), retornando os resultados y1=0 e y2=0.
0
0
Então é isso, a instrução "return" pode ser muito útil para sair de funções antecipadamente. Só lembre de usá-la com sabedoria e apenas quando necessário.