Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila de Matlab, Notas de estudo de Engenharia Informática

Apostila de Matlab

Tipologia: Notas de estudo

2012

Compartilhado em 23/11/2012

wellington-cassio-faria-8
wellington-cassio-faria-8 🇧🇷

4.5

(37)

129 documentos

1 / 54

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
AC304 MATLAB UMA FERRAMENTA
PARA A ENGENHARIA.
INATEL - Instituto Nacional de
Telecomunicações
Coordenador do curso:
Estevan Marcelo Lopes
Apostila elaborada por:
Luís Antonio Ribeiro Scudeler
Monitores:
Diego Miranda
Luís Antonio Ribeiro Scudeler
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36

Pré-visualização parcial do texto

Baixe Apostila de Matlab e outras Notas de estudo em PDF para Engenharia Informática, somente na Docsity!

AC304 – MATLAB – UMA FERRAMENTA

PARA A ENGENHARIA.

INATEL - Instituto Nacional de

Telecomunicações

Coordenador do curso:

Estevan Marcelo Lopes

Apostila elaborada por:

Luís Antonio Ribeiro Scudeler

Monitores:

Diego Miranda

Luís Antonio Ribeiro Scudeler

Introdução

O MATLAB (MATrix LABoratory-Laboratório de Matrizes) é um programa de computador de uso específico, otimizado para executar cálculos científicos e de engenharia. Ele nasceu como um programa para operações matemáticas sobre matrizes, mas ao longo dos anos transformou- se em um sistema computacional flexível capaz de resolver essencialmente qualquer problema técnico.

O MATLAB implementa a linguagem de programação de mesmo nome, juntamnete com uma grande biblioteca de funções predefinidas que tornam as tarefas de programação técnicas mais fáceis e eficientes.

 Obtendo ajuda no matlab:

  • helpnome_da_funçao”
  • lookforpalavra_chave”

Existem duas formas de se obter ajuda nesse software. A primeira é usarmos o help em seguida o nome de uma função. Porem essa forma exige ao usuário saber o nome exato da função, mas nem sempre conhecemos, o lookfor , é mais flexível nessa questão. Digitamos lookfor em seguida a palavra chave (o que a função faz), o comando procurará funções que trabalhem com a correspondente palavra chave. No exemplo abaixo o help retornou um resumo da função seno (sin=nome_da_funçao), o lookfor retornou todas as funções que trabalham com radianos(radians=palavra_chave).

CAPITULO 2: Conceitos Básicos

 Variáveis - conceito inicial:

A unidade fundamental de dados, em qualquer programa MATLAB, é a matriz. Matriz é uma coleção de valores de dados organizados em linhas e colunas, conhecidos por um nome único. Valores individuais de dados em uma matriz são acessados por meio do nome da matriz, seguido de índices entre parênteses que identificam a linha e a coluna do valor particular.

Uma variável MATLAB é uma região de memória que contem uma matriz, conhecida por um nome especificado pelo usuário. O conteúdo de uma matriz pode ser utilizado ou modificado a qualquer momento pela inclusão de seu nome em um comando MATLAB apropriado.

Criar ou manipular variáveis no MATLAB é bem simples, seguimos a forma geral: Var=expressão , onde ‘Var’ é o nome da variável e ‘expressão’ é uma constante escalar, uma matriz ou combinação de constantes com outras variáveis e operações matemáticas (+,- etc).

Exemplos (no Command Window):

No exemplo acima verificamos que existem algumas constantes numéricas predefinidas como o ‘i’ que é usado para números imaginários, verificamos que quando queremos atribuir vários valores em uma variável esses elementos ficam entre colchetes ( [ ] ), e que o ponto e virgula ( ; ), é usado para encerrar uma linha e começar outra em uma matriz.

  • Na primeira linha de comando, é atribuído para a variável ‘var’ o numero imaginário 40i, na segunda linha de comando é atribuído para variável ‘var2’ o dado da variável ‘var’ dividido por 5, na terceira linha de comando, é atribuído para a variável ‘vetor’ os elementos 1, 2 e 3, na quarta linha a variável ‘matriz’ recebe os dados do ‘vetor’ na primeira linha e os elementos 4, 4 e 5 na segunda linha.

Os operadores aritméticos são: soma (+), subtração (-), divisão(/), potenciação(^) e multiplicação(). Não sofrem variações perante números escalares (matriz 1x1), porém quando se trata de matrizes com M linhas e N colunas os operadores têm dupla interpretação. Considere A e B matrizes com dimensão 3x3. Se fizermos AB o MATLAB retornará uma matriz correspondente a multiplicação matricial de A com B, porem se fizermos A.*B à matriz resultante corresponde à multiplicação ponto a ponto, ou seja, elemento a elemento. O mesmo conceito se aplica para a divisão ponto a ponto (./) e potenciação ponto a ponto (.^).

Exemplos(no Command Window):

 Indexação:

A indexação possibilita a pegar um ou mais valores de dentro de uma matriz já existente. A sintaxe para isso é a seguinte: var=A(i,j) , sendo var uma variável que irá receber o elemento ixj da matriz A. Os índices i e j podem assumir um escalar ou um vetor(permitindo assim pegar varias linhas ou varias colunas).

Exemplo (no Command Window):

Na variável var1 está armazenado o elemento da linha 2 e coluna 3 da matriz A. Na variável var2 está guardada as linhas 1 e 2 e as colunas 1, 2 e 3 da matriz A.

 Concatenação:

Concatenar significa ‘montar’ matrizes com matrizes. Por exemplo, seja A uma matriz 2x2 e B uma matriz 3x2, podemos concatená-las formando uma nova matriz C com 5 linhas e 2 colunas. A concatenação é feita ou em relação à linha ou em relação à coluna, temos que observar que as matrizes devem ter a mesma dimensão no sentido da concatenação, no nosso exemplo só poderíamos concatenar em relação à coluna (tanto A quanto B têm duas colunas).

Para concatenar, lembrar o conceito de criação de variáveis, (entre colchetes, espaço ou vírgula usado para delimitar as colunas e o ponto e vírgula delimita as linhas) a diferença é que ao invés de números, usamos matrizes.

Exemplo (no Command Window):

 Funções Predefinidas:

O MATLAB possui uma ampla biblioteca de funções, dentre elas iremos trabalhar com funções trigonométricas, funções exponenciais e outras funções de criação de matrizes de leitura de dados e etc.

A sintaxe principal de qualquer função segue o padrão, [a1,a2,...an]=nome_da_função(e1,e2,...,en) , onde a1,a2,...a3 são os n parâmetros de saída(valores que serão retornados depois de serem modificados pela função) colocados entre colchetes (quando são mais do que um). E os parâmetros de entrada, e1,e2,...,en colocados sempre entre parênteses irão fornecer valores para dentro da função.

A e B só podem ser concatenadas em relação à coluna. Então C recebe [A;B](continua 2 colunas, mas agora, com 5 linhas)

Exemplo (no Command Window):

  • zeros : Função que cria matriz com elementos nulos.

A sintaxe é: var=zeros(m,n)

Exemplos (no Command Window):

  • eye : Função que cria matriz identidade.

A sintaxe é: var=eye(m,n)

Exemplos (no Command Window):

Agora que já sabemos os conceitos de criação de matrizes e vetores, iremos trabalhar com algumas funções informativas ou para realizar algumas modificações, funções que serão uteis para as variáveis criadas.

  • det : Calcula o determinante de uma matriz.

A sintaxe é: var=det(matriz)

Exemplo (no Command Window):

  • inv : Calcula a inversa de uma matriz.

A sintaxe é: var=inv(matriz)

  • reshape: Redimensiona uma matriz.

A sintaxe é: var=reshape(matriz,nº_linhas,nº_colunas)

Exemplo (no Command Window):

  • size : Retorna o numero de linhas e o numero colunas de uma matriz.

A sintaxe é: [m,n]=size(matriz)

Exemplo (no Command Window):

OBS: Como existem 2 parâmetros de saída, é necessário o colchetes.

Exemplo (no Command Window):

  • find : Retorna os índices correspondentes as posições na memória dos elementos que satisfazem a condição.

A sintaxe é: var=find(condição)

A matriz A contem os elementos 3, 2 e 1 na 1º linha, 5, 5 e 7 na 2º linha e 8, 9 e 10 na 3º linha. Os índices entre parênteses em vermelho correspondem à ordem como está salvo na memória, ou seja, se quisermos o elemento 7 por exemplo , ele é o oitavo na ordem da memória, então no Command Window fazemos:

Ou também como já vimos anteriormente, o elemento 7 corresponde a 2º linha e 3º coluna:

A função find , irá retornar as posições da memória. Se quisermos converter esses números correspondentes às posições, usamos o conceito de indexação.

Veja o exemplo no Command Window abaixo: No exemplo criamos uma matriz A qualquer, depois em uma variável ind , salvamos o vetor coluna correspondente aos índices das posições da memória dos elementos da matriz A que são menores do que 3. Em B estão os elementos correspondentes a essas posições.

 Resolvendo Sistemas de Equações:

Para resolvermos sistemas, criamos uma matriz correspondente aos índices que multiplicam as incógnitas, depois criamos outra matriz (vetor coluna), correspondente aos resultados das equações. Veja como foi resolvido o sistema abaixo no Command Window:

 Integral e Derivada:

Usa-se a função polyder para derivar e polyint para integrar um polinômio qualquer. A sintaxe é: deri=polyder([índices]) e inte=polyint([índices]), veja o exemplo abaixo:

ATENÇÃO: Script não aceita parâmetros de entrada nem de saída. Mas notem que no exemplo a entrada e a saída de valores são feitas por duas funções existentes no corpo do programa: Input (que irá solicitar um valor) e disp (que irá retornar o resultado para o usuário ou uma mensagem). Então nada impede de usarmos funções em scripts (como também o rand que usamos para criar o vetor). Input e disp serão muito usados em scripts. A sintaxe dessas duas funções é:

disp(‘mensagem qualquer’) ou disp(variavel)

var=input(‘mensa_de_aviso_que_está_sendo_solicitado_um valor’)

Para executar o script, digitamos no Command Window seu nome (o que foi salvo):

Exemplo de função:

No editor de programas escrevemos:

ATENÇÃO: O nome da função terá que ser o mesmo do nome que será salva (no exemplo: ex_fun). A função não precisou do auxilio de outras funções (como input ou disp) para solicitar valores de entrada nem retornar na saída. Parâmetros de saída e de entrada são naturais em funções.

Para executar no Command Window:

CURIOSIDADE: Para verificarmos se o resultado está certo, existe uma função que soma um vetor qualquer, a função se chama sum. Sua sintaxe é sum(vetor). No caso do exemplo: sum(vetor_linha)

Note que nesse caso não há como verificarmos se o resultado está certo, afinal, é característica da função não compartilhar suas variáveis com o workspace, então não temos acesso ao vetor_linha.

Foi feito o mesmo exemplo para um script e para a função para se verificar as diferenças entre suas construções. Mas note que se quiséssemos entrar com uma matriz, por exemplo, para ser trabalhada dentro do m-file, o script (por não aceitar diretamente parâmetros de entrada), não seria a melhor opção. Veja o exemplo abaixo:

Exemplo de função:

No editor:

No Command Window:

Para criarmos os programas precisamos ter o conhecimento dos operadores, das estruturas de decisão e de repetição:

-save : Usado para salvar variáveis em arquivos do tipo ‘.MAT’(é o formato de armazenamento de dados mais eficiente, mais compacto e rápido disponível no MATLAB).

Sintaxe: save(‘nome_arquivo’,‘var1’,...,‘varN’)

É a forma mais comum de salvar dados, afinal podemos salvar quantas variáveis (contidas no Workspace) quisermos. Observe que o nome_arquivo e as variáveis que desejamos salvar são todos colocados entre apóstrofos.

-load : Usado para carregar as variáveis salvas em arquivos do tipo ‘.MAT’.

Sintaxe: load(‘nome_arquivo’)

Exemplos (no Command Window):

Note que criamos três variáveis ( A, r e b ), porem somente A e b foram salvas. Para observarmos os processos, apagamos as variáveis do Workspace ( clear é usado para isso), com ele vazio, usamos load para carregar as variáveis salvas, após isso podemos verificar que no Workspace foram criadas as variáveis A e b novamente.

-xlsread : Usado para ler uma planilha do MS-Excel.

Sintaxe: [dados_num,dados_alfanumericos]=xlsread(‘nom.xls’)

Esta função irá retornar como parâmetros de saídas duas matrizes, sendo dados_num uma matriz contendo os valores numéricos e dados_alfanumericos uma matriz contendo caracteres (dados que não são numéricos).

Exemplo:

No Excel foi criada a planilha com o nome de ‘notas’, e no Command Window digitamos a função entre parênteses o nome e a extensão:

 Funções de Importação/Exportação de Arquivos de Imagem:

-imfinfo : Fornece informaçoes sobre a imagem.

Sintaxe: imfinfo(‘nome_imagem.ext’)

-imread : Lê arquivo de imagem.

Sintaxe: [a,map]=imread(‘nome_imagem.ext’)

A sintaxe indica que a funçao deve retornar (parametros de saída) duas matrizes sendo uma(matriz a ) contendo os dados para geração da imagem e a outra (matriz map ) contendo as cores da imagem.

Ao executar a função pode-se observar 2 possíveis casos:

1º Situação: Será retornado somente a matriz a ( matriz map estará vazia), e ela será uma matriz tridimensional, as cores estarão junto à matriz combinadas entre suas dimensões.

2º Situação: Será retornado duas matrizes ( a e map ) unidimensionais.

Usa-se a função image(matriz_contendo_os_dados) para gerar a figura e colormap(matriz_contendo_as_cores) para dar cor a ela(quando se tem a matriz correspondente às cores).