MatLab - Criando uma função

Neste post será ensinado como fazer uma função no MatLab

Uma função no MatLab deve ser escrita em um script. Para isso, deve-se criar um novo script, apertando em New/Script na parte superior esquerda.


Após isso, irá abrir uma janela onde uma função pode ser escrita. Uma função possui a seguinte estrutura:

Função em MatLab

As saídas são variáveis que serão devolvidas pela função. No caso do exemplo há três saídas.
As entradas são variáveis necessárias para que a função seja executada. Há, também, três entradas neste exemplo.
O nome da função que esta sendo aqui definida é funcao. Ao salvar a função, cria-se um arquivo *.m que DEVE ter o mesmo nome da função, neste caso o arquivo gerado deverá ter o nome funcao.m.

Exemplo: Função que recebe três valores e calcula a soma e o produto deles:



Assim, para acessá-la no Command Window basta proceder conforme a seguir:

Programação em MatLab

Veja que neste caso, a variável A recebeu a soma 10+3+2, e a variável B, o produto 10*3*2.

Um comando importante para a programação em MatLab é o for

Uso do for em MatLab

A sintaxe geral é a seguinte:

for variavel = inicio:incremento:fim
    ...
    %declarações
    ...
end

Neste exemplo, em cada passo serão executadas as declarações e a variável variavel será modificada, começando com o valor de inicio, incrementando com o valor de incremento até o valor de fim.
É possível usar a função for sem definir o incremento. Neste caso, por padrão, o incremento é 1.

Uso do if em MatLab

Outra função importante na programação é o uso do if. O if é uma condição imposta. Ele tem a seguinte sintaxe geral:

if a == b      %Se a variável a for igual a b
    a = 0;
elseif a > b   %Caso a diferente de b e a maior que b
    a = b;
else           %Caso contrário (a diferente de b e a menor que b)
    b = a
end            %fim da função

O comando if possui as seguintes formas de comparação:


Comparações usando if
Comparação Comando
Igual ==
Diferente ~=
Maior >
Menor <
Maior igual >=
Menor Igual <=

Exemplo usando o que foi aprendido:
Dada uma matriz M, criar uma função que verifique quantos valores se repetem nesta matriz.


Veja que esta função vai percorrendo cada elemento da matriz para verificar se acha outro igual a ele. Ao encontrar outro igual, a função finaliza com o uso do break e passa para o próximo elemento de referência.
Pode surgir a dúvida de que após o primeiro elemento igual, existam outros que também sejam iguais e com o uso do break, estes outros elementos estariam sendo ignorados. Isso não ocorre pois o elemento identificado como igual, será um elemento de referência em algum momento. Veja, abaixo, como o processo ocorre detalhadamente:

%Definindo uma matriz M
M = [1 2 5; 2 1 3; 1 2 1];

Já podemos perceber que há 5 elementos repetidos, sendo eles o 1 (3 vezes) e o 2 (2 vezes).
Chamando a função repete, a lógica ocorre da seguinte forma:

1 - A variável quanto recebe zero;
2 - Verifica-se quantas linha e quantas colunas tem a matriz M;
3 - Transforma-se a matriz M em um vetor coluna;
4 - tamanho recebe o tamanho do vetor;
5 - Pega-se o elemento k1 do vetor Vetor_M como elemento referência
    5-1 - Percorre-se o vetor Vetor_M a partir do elemento escolhido até que se encontre outro igual;
    5-2 - Ao encontrar outro igual, muda-se o elemento de referência para o próximo e procede-se novamente como 5-1.

A variável quanto guarda quantas vezes há elementos repetidos. A varável valor é um vetor com os elementos que possuem mais de um.

Veja o uso da função repete na matriz M definida acima.

>> M = [1 2 5; 2 1 3; 1 2 1]

M =

     1     2     5
     2     1     3
     1     2     1

>> [quanto,valor] = repete(M)

quanto =

     5


valor =

     1     2     1     2     1

É importante perceber que o vetor Vetor_M guarda as colunas da matriz M. Desta forma, o código percorre coluna por coluna.




0 comentários:

Postar um comentário