Buscar

APOSTILA COMPLETA MATLAB

Prévia do material em texto

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: 
Ivo Bizon Franco de Almeida 
 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. 
 
 
 
CAPITULO 1: Introdução ao MATLAB 
 Ambiente MATLAB: 
 
 
 
- Janela de Comando: É onde o usuário irá digitar todos os comandos 
que serão executados e processados pelo MATLAB. 
- Espaço de Trabalho: É onde o MATLAB armazenará as variáveis 
criadas na execução de comandos possibilitando assim ao usuário a ter 
acesso a elas quando quiser. 
- Janela de Documentos: São os ‘olhos do MATLAB’. Todo tipo de 
arquivo que o usuário deseja abrir no MATLAB deve estar indicado nesse 
campo. Se desejarmos abrir um m-file, por exemplo, que está numa 
determinada pasta, esta pasta deve estar direcionada no Current Directory 
para aí sim o software executar o arquivo desejado. 
- Janela de Histórico de Comandos: É um campo que grava todas as 
linhas de comandos digitadas. 
 
 Obtendo ajuda no matlab: 
- help “nome_da_funçao” 
- lookfor “palavra_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. 
 Criando e Manipulando as variáveis: 
Quando queremos criar uma variável que receba um vetor linha (matriz 
1xN) ou vetor coluna (matriz Nx1), colocamos seus elementos entre 
colchetes e usa-se virgula ou espaço em branco para separar-los isto no 
caso do vetor linha, já no caso do vetor coluna, os elementos terão que ser 
separados por ponto e virgula. Conclui-se então que o espaço em branco ou 
a vírgula são usados para separar os elementos em relação às colunas, e o 
ponto e vírgula para separá-los em relação às linhas. 
Exemplos (no Command Window): 
 
Podemos também criar vetores com intervalos escolhendo a variação 
desejada. Para intervalos segue-se a sintaxe: 
 [valor _inicial:inc:valor_final] 
 Se o inc não for fornecido ele assumira o valor 1. 
Exemplos (no Command Window): 
 
 
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 Mlinhas e 
Ncolunas os operadores têm dupla interpretação. Considere A e B matrizes 
com dimensão 3x3. Se fizermos A*B 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](continua2 colunas, mas agora, 
com 5 linhas) 
 
Exemplos (no Command Window): 
 
OBS: Notem que quando atribuímos a uma variável algum valor ou 
expressão, se ao final da linha de comando colocarmos ‘;’ o MATLAB 
suprime (não mostra para o usuário) o conteúdo dela. Como no caso do ‘x’, 
que ao final da linha de atribuição foi colocado um ‘;’. No caso do ‘a’, ao 
final da linha de comando não foi colocado o ‘;’ então o MATLAB 
mostrou o conteúdo de ‘a’ na tela. 
 Até agora aprendemos a criar vetores e matrizes simples. Porém 
existem muitas funções para a criação de matrizes e vetores. Dentre elas 
iremos destacar: 
- linspace: É uma função de criação de vetores com elementos linearmente 
espaçados, ou seja, o intervalo entre os elementos do vetor terão a mesma 
distancia. 
A sintaxe é: var=linspace(val_inicial,val_final,nº_de_elem) 
Exemplo (no Command Window): 
 
- rand: É uma função de criação de matrizes com elementos aleatórios 
entre 0 e 1. 
A sintaxe é: var=rand(m,n) 
 
No primeiro quadro 
algumas funções 
trigonométricas. No 
segundo quadro algumas 
funções exponenciais. No 
terceiro quadro uma 
função matricial que tem 2 
parâmetros de saída e 1 de 
entrada. 
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. 
- numel: Retorna o numero de elementos de uma matriz. 
A sintaxe é: var=numel(matriz) 
 Exemplo (no Command Window): 
 
- diag: Retorna a diagonal principal de uma matriz. 
A sintaxe é: var=diag(matriz) 
 Exemplo (no Command Window): 
 
- ’: Retorna a transposta de uma matriz. 
A sintaxe é: var=matriz’ 
 Exemplo (no Command Window): 
 
- trace: Retorna a soma da diagonal principal de uma matriz. 
A sintaxe é: var=trace(matriz) 
 
 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: 
 
CAPITULO 3: Introdução a Programação 
do MATLAB 
Os arquivos criados no MATLAB tem extensão ‘.m’ e são chamados 
de m - files. Existem dois tipos: 
- script: é uma seqüência de comandos, serve basicamente para 
automatizar algum processo repetitivo. Compartilha suas variáveis com o 
Workspace e não possui nem parâmetro de entrada e nem de saída. 
- função: Quando você utiliza funções do MATLAB, como abs, size, 
rand, o MATLAB toma as variáveis que você definiu, calcula os resultados 
desejados de acordo com o que você pediu e depois devolve os resultados. 
Os comandos executados junto com as variáveis criadas no interior do 
programa permanecem ocultos ( então a função é uma caixa preta). 
Resumindo a função aceita parâmetros de entrada e retorna parâmetros de 
saída. 
 Para criarmos os programas no MATLAB digitamos ‘edit’ no 
Command Window, irá abrir o editor de programas. É no editor que iremos 
criar nossos scripts ou nossas funções. 
Exemplo de script: 
No editor de programas escrevemos: 
 
 
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: 
 
CAPITULO 4: Entrada e Saída de Dados 
Existem funções de importação (ler dados vindos de arquivos fora do 
MATLAB, como uma imagem, por exemplo) ou de exportação (salvar 
dados em tipos diferentes de arquivos) no MATLAB. 
 
 Funções de Importação/Exportação de Dados:Algumas funções são usadas para salvar e outras para ler, mas cada uma 
grava ou lê arquivos de tipos diferentes. 
-dlmwrite: Usado para gravar uma matriz em um arquivo ASCII 
‘delimitado’. 
A sintaxe é: dlmwrite(‘nome_arquivo’,matriz,‘delimitador’) 
O nome_arquivo sempre entre apóstrofos, é um nome opcional que você 
deseja salvar a matriz que pode ser qualquer matriz contida no Workspace, 
o delimitador também sempre entre apóstrofos, pode ser vírgula, ponto e 
vírgula ou espaço em branco. 
-dlmread: Usado para ler uma matriz em ASCII. 
Sintaxe: dlmread(‘nome_arquivo’) 
O nome_arquivo vem sempre entre apóstrofos. 
Exemplos no Command Window : 
 
CURIOSIDADE: Note que quando 
escolhemos um nome para salvar a 
matriz em ASCII, se ao final do nome 
acrescentarmos .txt, podemos acessar 
os dados desse arquivo com o arquivo 
de texto do Windows. 
IMPORTANTE: Os arquivos que iremos ler deverão existir na pasta indicada no Current 
Directory, assim como também os arquivos que salvamos ficarão armazenados nesta pasta. 
-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). 
Exemplos no Command Window: 
 
OBSERVAÇOES: Quando for executado os exemplos acima note que na 
primeira situação, a matriz map retornou vazia, diferente da matriz a 
(matriz tridimensional) que continha os dados para criação da imagem, por 
isso para visualiza-la só precisou usar a função que gera a imagem. Já na 
segunda situação tanto a matriz correspondente aos dados(a), quanto a 
matriz correspondente as cores(map) não eram vazias, então para 
visualizarmos a imagem nesse caso, foi preciso usar uma função para gera-
la e depois outra função para dar cor a ela. 
-imwrite: Grava matriz em arquivo de imagem. 
Sintaxe: imwrite(a,map,‘nome_qualquer.extensao’) 
 Para essa função teremos também duas possibilidades: 
1º Situação: Quando se tem uma matriz tridimensional correspondente a 
criação de uma imagem, para salva-la, usamos a função de gravação e entre 
parenteses colocamos a matriz correspondente aos dados(matriz 
tridimensional) e o nome que será salvo nesta ordem, conforme indicado na 
sintaxe. 
2º Situação: Caso tenhamos duas matrizes, uma correspondente aos dados 
para criação da imagem e a outra correspondente às cores(ambas 
unidimensionais), para salva-las, usamos a função de gravação e entre 
parenteses colocamos primeiro a matriz relacionada aos dados e depois a 
matriz relacionada as cores e por ultimo o nome que será salvo, conforme a 
sintaxe da função. 
 
Exemplo no Command Window(1º Situação): 
No exemplo a seguir, vamos ler os dados de uma imagem e guarda-los em 
uma matriz, que será uma matriz tridimensional (matriz a) e como as cores 
estarão combinadas entre suas dimensões, iremos pegar todos elementos 
porém da primeira dimensão da matriz a e guarda-los em uma matriz b 
após isso salvaremos b em um arquivo de imagem com um nome de 
‘nova.jpg’. 
 
 Exemplo no Command Window(2º Situação): 
Nesse exemplo faremos a leitura de uma imagem que nos retornará duas 
matrizes unidimensionais (a e map), uma correspondente aos dados e a 
outra correspondente as cores, a seguir será criada outra matriz (matriz b) 
que conterá todos elementos de a multiplicados por 3, assim iremos salvar 
a nova matriz b (correspondente a geração da imagem) e a matriz map 
(correspondete as cores) em um arquivo de imagem com o nome de 
‘imagem.bmp’ 
 
 Funções de Importação/Exportação de Arquivos de Som: 
-wavread: Lê arquivo de som Microsof Wave. 
Sintaxe: [A,fs,bits]=wavread(‘nome_do_arquivo’) 
A funçao deverá retornar (parametros de saída) três matrizes sendo 
matriz A contendo a amplitude do som, matriz fs contendo a frequencia do 
som (em Hz) e a matriz bits que são bits por amostragem do som. 
Usa-se a função sound(A,fs,bits) para gerar o audio do som. 
Exemplo no Command Window: 
 
Após ser executado esse exemplo, verificar que na 
pasta direcionada no Current Directory foi gerada uma 
imagem com o nome de ‘nova.jpg’ 
Verificar que na pasta direcionada no 
Current Directory foi gerada uma imagem 
com o nome de ‘imagem.jpg’ 
Para ler o arquivo de som ‘Bee’, ele 
precisou estar na pasta direcionada do 
Current Directory. 
-wavwrite: Grava matriz em arquivo de som Microsoft Wave. 
Sintaxe: wavwrite(A,fs,bits,‘ nome_do_arquivo’) 
 A função terá que ter quatro parametros de entrada, sendo os três 
primeiros as três matrizes correspondentes a amplitude (A), a frequencia 
(fs) e a amostragem (bits) e o quarto parametro um nome qualquer para 
salvar as matrizes em arquivo de som. 
Exemplos no Command Window: 
Nesse exemplo primeiramente iremos ler os dados do arquivo ‘Bee’ a 
seguir, sera gerado 3 arquivos de som: 
1º Com a amplitude aumentada em 3 vezes. Nome: ‘primeiro’. 
2º Com a frequencia aumentada em 2 vezes. Nome: ‘segundo’. 
3º Com a amostragem pela metade. Nome: ‘terceiro’. 
 
 Funções para criação de Arquivos de Animação: 
-aviinfo: Retorna informações de um arquivo de animação. 
Sintaxe: aviinfo(‘nome_do_arquivo’) 
-getframe: Armazena a figura corrente em um quadro de animação. 
Sintaxe: mov=getframe 
-movie2avi: Cria um arquivo em formato .AVI a partir de uma matriz 
contendo os dados dos quadros de animação. 
Sintaxe: movie2avi(‘mov’,‘nome_arquvivo.avi’) 
 A função terá dois parametros de entrada, sendo o primeiro uma 
matriz contendo os quadros de animação (obtidospela função getframe) e 
segundo o nome com a extenção (.avi) que se deseja salvar o arquivo. 
Os arquivos foram gerados na pasta 
direcionada no Current Directory. 
 Exemplo: 
Para gerar esse arquivo de animação será gerado um scrip com o nome de 
‘ex_anima’ da seguinte forma: 
 
Na 1º linha do programa, foi criada uma estrutura de repetição de a 
variando de 1 a 100. Dentro da estrutura quando a vale 1, na 2º linha é 
armazenado na variável x na posição 1 o cosseno de 1, na 3º linha foi usada 
uma função grafica que gerará o grafico do cosseno do ponto 1 ao ponto 1, 
na 4º linha em uma variavel mov na posição 1 é guardado o quadro de 
animação referente ao cosseno do ponto 1 ao 1, na 5º linha a execução 
volta para a 1º e incrementa a variavel a que passa a ser 2, na 2º linha x na 
posição 2 recebe cosseno de 2, na 3º linha é gerado o grafico do cosseno do 
ponto 1 ao ponto 2, na 4º linha a variavel mov recebe na posição 2 o quadro 
de animação referente ao cosseno do ponto 1 ao 2 , e assim sucessivamente 
até a variavel a valer 100. Quando a execução sair da estrutura de repetição 
na 6º linha está a função que irá criar um arquivo com o nome de ex1 em 
‘.avi’ dos quadros de animação contidos na varivavel mov. 
Para executar o exemplo, no Command Window digitamos o nome do 
scrip: 
 
Após executar o exemplo, note que será gerada 
a animação na figura 1 e na pasta indicada no 
Current Directory estará um arquivo do tipo 
‘.avi’ com o nome de ex1. 
CAPITULO 5: Gráficos e Aplicações 
Gráficos: 
 Funções Básicas de Geração de Gráficos: 
-plot: Gera gráfico bidimensional com coordenadas x e y lineares. 
Sintaxe: plot (coord_x,coord_y,‘fmt’) 
 A função tem como parâmetros de entrada as coordenadas x 
e y, e a formatação fmt, porem esta é opcional. A formatação 
consiste em mudar a cor da linha do gráfico e mudar o tipo de 
marcador. Se quisermos a cor vermelha e o gráfico tracejado, por 
exemplo, na formatação colocamos ‘r--’, ou seja, usa-se a 
primeira letra dos nomes das cores (no exemplo red) para definir 
a cor da linha e símbolos para indicar o tipo de marcador que são 
vários: *, +, --, ., >, <, o, ^. 
Exemplos no Command Window: 
 
 
 
 
-loglog: Gera gráfico bidimensional com coordenadas x e y na 
escala logarítmica. 
Em todos os casos foi criada uma variável x que recebeu os valores de –pi a pi variando de 
0.1 unidades e em uma variável y foi guardado os valores de seno de x. No 1º caso foi 
plotada a imagem sem formatação, no 2º caso foi usada a formatação ‘r--’, ou seja, red e 
marcador tracejado, no 3º caso foi usada ‘g*’, ou seja, green e marcador estrelinha. 
Sintaxe: loglog(coord_x,coord_y,‘fmt’) 
Como parâmetros de entrada a função recebe as coordenadas x e y 
e a formatação opcional (que é configurada da mesma forma que 
foi explicado no comando plot). 
-semilogx: Gera gráfico bidimensional com a coordenada x em 
escala logarítmica e a coordenada y em escala linear. 
Sintaxe: semilogx(coord_x,coord_y,‘fmt’) 
Como parâmetros de entrada a função recebe as coordenadas x e y 
e a formatação opcional (que é configurada como no comando 
plot). 
-semilogy: Gera gráfico bidimensional com a coordenada y em 
escala logarítmica e a coordenada x em escala linear. 
Sintaxe: semilogy(coord_x,coord_y,‘fmt’) 
Como parâmetros de entrada a função recebe as coordenadas x e y 
e a formatação opcional (que é configurada da mesma forma que 
foi abordada no comando plot) 
Exemplos no Command Window: 
 
 Em todos os exemplos a coordenada x é igual à coordenada y para melhor visualizarmos as 
diferenças nas escalas. No 1º caso tanto x quanto y são plotados com a escala logarítmica e 
com a cor verde e marcador ponto, e como x e y são iguais o gráfico é uma reta. No 2º caso 
x esta em escala logarítmica e y linear, e o desenho está com a formatação vermelho, e 
marcador triangulo. No 3º gráfico y está plotado com escala logarítmica e x linear, nesse 
caso não foi usada nenhuma formatação para o desenho. 
 
-polar: Gera gráfico com eixos de coordenadas polares. 
Sintaxe: polar(ângulo_em_radianos,modulo,‘fmt’) 
Essa função tem como parâmetros de entrada o ângulo em 
radianos, valores radiais lineares (modulo), e a formatação 
opcional. 
Por exemplo, o numero complexo 
iz 10
 possui modulo igual 
a um, pois 
110|| 22 z
 e ângulo igual a 90º, afinal 
20
1 
 arctgarctg
. Existem algumas funções no Matlab que já 
fazem esses cálculos facilitando nosso trabalho, como a função 
angle, que retorna o ângulo de um número complexo e a função 
abs, que calcula o modulo de um numero complexo. 
Exemplo 1: Exemplo 2: 
 
 
 
 
 
No 1º exemplo na variável a foi armazenado o numero complexo 0+i, na variável ângulo 
foi armazenado o ângulo em radianos do numero complexo a e na variável modulo foi 
armazenado o modulo do numero complexo a. Logo após foi usado o comando polar para 
plotar o numero complexo com o marcador ‘+’ e com a cor vermelha. 
O 2º exemplo é semelhante ao 1º porem o número complexo é 6+5i e a formatação 
usada para o desenho foi a cor verde e marcador ‘*’. 
-plotyy: Permite criar duas curvas no mesmo gráfico com escalas 
diferentes para y. 
 Suponha que se deseja plotar xe e )(xsen para x, variando 
de –pi a pi, no mesmo gráfico, observe o exemplo abaixo (no 
Command Window): 
 
Observe que o gráfico não ficou totalmente visível, afinal um 
seno de x, varia de -1 a 1 no eixo y, e o gráfico de um expoente, 
varia de 0 a +∞, então a solução nesse caso, para os dois gráficos 
ficarem visíveis seria ter duas escalas diferentes para y. Por isso 
usamos o plotyy, para visualizar-mos dois gráficos com escalas 
diferentes para y. Desta forma: 
 
No exemplo, foi criado um vetor 
com o nome de x variando de –
pi a pi, na variável a foi gravado 
os valores de seno de x, na 
variável b os valores de 
expoente de x, em seguida foi 
usado a função plot com as 4 
coordenadas(2 para cada 
gráfico). 
As variáveis são as mesmas 
criadas no exemplo anterior, 
porém observe que foram 
criadas duas escalas diferentes 
para y, a 1º em azul de -1 a 
1(para o gráfico do seno) e a 2º 
em verde de 0 a 40(para o 
gráfico de expoente de x). 
 Atributos de Eixos 
-axis: Controla a escala dos eixos de um gráfico. 
Sintaxe: axis([Xmin Xmax Ymin Ymax]) 
 Quando é gerado um gráfico do seno, por exemplo, a função 
plot gera o gráfico com escala definida pelo domínio e imagem, 
porem pode-se controlar a escala com a função axis. Observe o 
exemplo abaixo: 
 
-grid: Função para exibição de grade no gráfico. 
Exemplo no Command Window: 
 
 -hold: Fixa o gráfico corrente na figura. 
 Quando plotar um gráfico com a função plot, em seguida se 
for usado o comando novamente, o anterior é substituído, mas se 
não quiser perder o primeiro gráfico para plotar outro junto a ele, 
usa-se hold, observe o exemplo: 
 
 
-subplot: Permite gerar vários eixos em uma mesma figura. 
Sintaxe: subplot(m,n,p) 
 A função exige três parâmetros de entrada sendo, m o 
numero de eixos na vertical, n o numero de eixos na horizontal e 
p índice do eixo corrente. Observe o exemplo no Command 
Window abaixo: 
No exemplo ao lado, foi 
plotado em uma figura dois 
gráficos. Se não fosse usado 
o comando hold, na figura só 
iria aparecer o gráfico do 
cosseno, afinal o ultimo 
comando foi o plot(x,cós(x)). 
Note também que nesse 
caso poderia ser usado o 
plot com as coordenadas dos 
dois gráficos da seguinte 
forma: plot(x,sin(x),x,cos(x)) 
 
 Anotações e Textos 
-title: Permite colocar título no gráficocorrente. 
Sintaxe: title(‘titulo’) 
-xlabel: Nomeia o eixo x. 
Sintaxe: xlabel(‘eixo x’) 
-ylabel: Nomeia o eixo y. 
Sintaxe: xlabel(‘eixo y’) 
-zlabel: Nomeia o eixo z. 
Sintaxe: xlabel(‘eixo z’) 
-gtext: Abre um cursor na figura corrente para se escolher o lugar 
exato onde o texto irá ficar. 
Sintaxe: gtext(‘texto’) 
-legend: Coloca legenda nos gráficos. O numero de gráficos na 
figura terá que ser o mesmo do numero de textos. 
Sintaxe: legend(‘texto1’,‘texto2’,...) 
Observe o exemplo sobre as funções acima: 
 
 
 Funções Gráficas 2D Especiais 
-area: Gera gráfico da área. 
Exemplo: 
 
 
 
-bar: Gera gráfico de barra vertical. 
Exemplo: 
 
-stem: Gera gráfico de pontos com hastes. 
Exemplo 
 
-pie: Gera gráfico de pizza. 
Exemplo 
 
-comet: Dados x e y, gera gráfico com exibição de trajetória 
animada. 
Exemplo: 
 
-ezplot: Gera gráfico de coordenada linear a partir de equações de 
funções. Sintaxe: ezplot(‘equação’) 
-ezpolar: Gera gráfico de coordenada polar a partir de equações 
de funções. Sintaxe: ezpolar(‘equação’) 
Exemplos sobre ezplot e ezpolar: 
 
 Funções Gráficas 3D 
-plot3: Dados x, y e z cria curva no espaço 3D. 
Sintaxe: plot3(x,y,z,‘fmt’) 
Exemplo: 
 
-meshgrid: Gera malha para criação de superfícies. 
Sintaxe: [mx,my]=meshgrid(x,y) 
Dados dois vetores x e y, contendo as coordenadas dos eixos 
X e Y, retorna duas matrizes, mx e my, contendo a ‘malha’ de 
coordenadas necessária para geração de superfícies. 
-mesh: Gera a malha a partir de coordenadas 3D. 
Sintaxe: mesh(mx,my,mz) 
Exemplo: 
 
-surf: Gera a sduperficie a partir de coordenadas 3D. 
Sintaxe: surf(mx,my,mz) 
Exemplo: 
 
 
-contour: Gera gráficos de curvas de nível. 
Sintaxe: contour(mx,my,mz) 
Exemplo: 
 
 
-surfc: Gera superfície com curva de nível juntos. 
Exemplo: 
 
 Funções Gráficas 3D Especiais 
-cylinder: Fornece as malhas de coordenadas mx, my e mz 
necessárias para criação de um cilindro com altura 1. 
Sintaxe: [mx,my,mz]=cylinder(Raio,N) 
 A função tem como parâmetro de entrada um vetor (Raio), 
contendo variação do tamanho do raio ao longo da altura e N o 
numero de faces do cilindro. 
Exemplo: 
 
-sphere: Retorna as malhas de coordenadas mx, my e mz 
necessárias para criação de uma esfera de raio 1. 
Sintaxe: [mx,my,mz]=sphere(N) 
 A função aceita como parâmetro de entrada o numero de 
face da esfera (N). 
Exemplo: 
 
 
-bar3: Gera gráfico de barra 3D vertical. 
-pie3: Gera gráfico de pizza 3D. 
Exemplos: 
 
 Funções Gráficas de Animação 
-getframe: Captura figura e retorna estrutura (contendo dados e 
mapa de cores) para ser utilizada na animação quadro a quadro. 
Sintaxe: mov=getframe 
-movie2avi: Armazena a animação armazenada em uma variável 
em um arquivo em formato AVI. 
Sintaxe: movie2avi(mov,‘nom_arquivo’) 
Exemplo: 
No editor de programas: 
 
Após criação do programa, no Command Window digita-se 
seu nome: 
 
Criação de Interface com o Usuário: 
 Caixas de Diálogo (CD) 
Possibilitam a construção de programas com interface com 
usuário mais amigável. 
-inputdlg: Caixa de diálogo para entrada de dados via texto. 
Exemplo: 
 
No exemplo acima entramos com os parâmetros de entrada 
básicos da função, porém ela aceita outros opcionais, veja o 
exemplo: 
 
 
Observação: O parâmetro de saída da função inputdlg é uma 
cadeia de caracteres (cell-array), então para operar os valores 
Observe que como parâmetros de 
entrada da função inputdlg entrou-
se com infor que é uma matriz de 
cell-array (cadeia de caracteres, 
usa-se chaves para delimitá-las) e 
com titulo que é o nome da caixa 
de dialogo. 
msg é uma cadeia de caracteres (cell-array), titulo é o nome 
da caixa de dialogo, num_de_linhas é um vetor coluna 
contendo o numero de linhas para cada entrada de dados, e 
val_predef cadeia de caracteres (cell-array) contendo os 
valores predefinidos . 
retornados pela função é necessário usar a função str2double que 
converte de caractere para numérico. 
-errordlg: Exibe caixa de diálogo de mensagem de erro. 
Exemplo: 
 
-warndlg: Exibe caixa de diálogo de mensagem de aviso. 
Exemplo:
 
-helpdlg: Exibe caixa de dialogo de mensagem de ajuda. 
Exemplo: 
 
-msgdlg: Exibe caixa de dialogo para uma mensagem qualquer 
mensagem. 
-listdlg: Caixa de diálogo para entrada de dados via lista de 
seleção. 
Sintaxe: 
[ind,teste]=listdlg(‘PromptString’,nome,‘Liststring’,lista) 
 A função tem como parâmetro de entrada o nome da caixa 
de dialogo (variável nome) e uma cadeia de caracteres (variável 
lista) que conterá os objetos da lista. Como parâmetros de saída 
ind, que é o numero equivalente a opção escolhida e teste que é 
sempre 1 enquanto for escolhida uma opção, este passa a ser 0, 
quando o usuário não escolher nenhum item ou seja clicar em 
‘cancel’. Veja o exemplo a seguir: 
 
 -questdlg: Caixa de diálogo para entrada de dados com seleção 
de duas opções possíveis. 
 
 
 
 
 
 
 
 
 
 
 GUIDE – Graphic User Interface Design Environment 
Os recursos de interface gráfica com o usuário incluem 
menus, menus contextuais, botões simples (pushbuttons), 
controles deslizantes (sliders), botões de rádio, botões de chave 
(togglebuttons), menus popup, e caixas de listagem. Uma 
interface com o usuário é o ponto de contato ou método de 
interação entre uma pessoa e um computador ou programa de 
computador. Será ressaltado nesse capitulo informações 
básicas para se criar uma interface. 
Para acessar o campo de criação de uma interface clicar em 
File/New/GUI, ou simplesmente digite no Command Window 
a palavra guide. Após esse processo escolher a opção Blank 
GUI (Default), após clicar em ‘OK’ abrirá uma janela com um 
campo em branco do lado direito e várias ferramentas do lado 
esquerdo: 
 
As ferramentas disponíveis são: 
 -[Push Button]: Botão de acionamento de comando. 
 -[Toggle Button]: Botão de configuração de opção. 
 -[Radio Button]: Botão de escolha de opção. 
 -[Checkbox]: Caixa de opção (sim/não). 
 -[Edit Text]: Caixa de edição de texto. 
 -[Static Text]: Texto estático. 
 -[Slide]: Barra de Graduação. 
 -[Frame]: Quadro. 
 -[Listbox]: Caixa de lista de opções. 
 -[Popup Menu]: menu popup de opções. 
 -[Axes]: Eixo. 
Cada uma dessas ferramentas possui propriedades que podem 
ser configuradas pelo usuário. Algumas serão destacadas: 
-[Tag]: nome atribuído ao objeto pelo usuário. 
 -[Callback]: nome da função que é acionada pelo objeto. 
 -[String]: valor ou nome inicial. 
 -[Position]: posição do objeto na janela. 
 -[Style]: informa o tipo do objeto. 
As demais propriedades configuram basicamente a aparência 
do objeto, como a cor de fundo, tamanho e fonte de texto. 
A ferramenta GUIDE é interativa, com muitos detalhes de 
configuração de parâmetros, desta forma iremos apresentar dois 
exemplos com as ferramentas básicas para criação de caixas de 
diálogo no MATLAB. 
EXEMPLO 1: Será criada uma caixa de dialogo com três botões 
(Push Button), sendo que cada um deles exibirá um gráfico 
diferente na ferramenta ‘Axes’. 
-Botão1: cos(x) para x variando de –pi a pi. 
-Botão2: sen(x)+cos(x) para x variando de 1 a 10. 
-Botão3: gráfico animado de sen(x) para x de -4pi a 4pi; 
1º Passo: Crie três programas implementados em três m-files 
(b1.m, b2.m e b3.m) que serão callback dos Push Butons. 
Então no editor de programas: 
 
 
 
2º Passo: Chame o comando guide e construa a janela conforme olayout exibido em seguida: 
-[Static Text]: Título. 
-[Axes]: área do gráfico. 
-[Push Button]: 3botoes. 
 
3º Passo: dê um duplo-clique sobre o objeto [Static Text] para 
abrir o editor de propriedades e configure ‘String’ com 
‘EXEMPLO 1’, e de também um duplo clique sobre o [Push 
Button] e configure o ‘String’ com o nome de Botão1 para o 1º 
Push Button, Botão2 para o 2º e assim por diante. 
4º Passo: para direcionar os programas aos botões, de um duplo 
clique sobre os objetos [Push Button] e modifique o campo 
‘callback’ com os nomes dos respectivos programas. 
 
5º Passo: crie um menu: 
-Abra o [Menu Editor], após abrir uma janela clique no ícone do 
canto superior esquerdo [New Menu]. 
-No campo label, coloque o nome ‘Exemplo’. 
 
-Crie as opções do menu clicando no ícone [New Menu Item] e 
configure as propriedades: 
1º opção: 2º opção: 3º opção: 
-Label: ‘G1’ -Label: ‘G2’ -Label: ‘G3’ 
-Callback: ‘b1’ -Callback: ‘b2’ -Callback: ‘b3’ 
 
 
Observação: Para criar as opções do menu ‘Exemplo’, coloque 
este item em destaque (clique nele) e depois acione o ícone [New 
Menu Item] 
6º Passo: Armazene a janela via opção [Save As] do menu [File] 
com o nome de ‘inter1’. Ao ser salvo o MATLAB gera um 
programa automaticamente. Para executar a caixa de dialogo 
criada, no Command Window digite o nome com qual foi salva: 
 
EXEMPLO 2: Vamos resolver um problema de um circuito 
elétrico onde queremos achar I1, I2, I3 e PT. De acordo com o 
sistema dado: 
 
1º Passo: Entre no campo para criação de interface, construa a 
janela conforme o layout abaixo: 
-os textos na coluna esquerda devem ser criados como [Static 
Text]. O conteúdo do texto deve ser editado no campo [String]. 
-os textos da coluna direita devem ser criados com os atributos 
descritos abaixo: 
 
 
-Utilize [Push Button] para criar o botão ‘CALCULAR’ que irá 
chamar a callback cujo nome é ‘circuito_calculado’. 
 
2º Passo: armazene a janela via opção [Save As] do menu [File] 
com o nome de ‘circ’. O MATLAB gerará automaticamente um 
m-file referente à interface criada. 
3º Passo: Até aqui não executamos nenhum procedimento muito 
diferente do que foi descrito no EXEMPLO1. 
Agora criaremos o programa callback ‘circuito_calculado’, 
que deve utilizar os parâmetros de entrada fornecidos na caixa de 
diálogo para calcular os valores I1, I2, I3 e PT, que devem ser 
exibidos na caixa de diálogo. 
Utilizaremos as funções findobj para identificar os objetos 
UIcontrol (as ferramentas do GUI) e get para obter o conteúdo de 
suas propriedades. 
obj=findobj(figura_corrente,‘Propriedade’,‘Valor’) 
-findobj irá identificar com qual objeto estamos trabalhando, ou 
seja, o código do objeto da figura que satisfaça a condição 
‘Propriedade’=‘Valor’. Por exemplo: 
obj=findobj(gcf,‘Tag’,‘V1’) 
obj recebe o código do objeto da figura corrente (indicada pela 
função gcf - get current figure) cujo ‘Tag’ é ‘V1’. 
Val=get(obj,‘Propriedade’); 
-get irá retornar o valor que se encontra na propriedade daquele 
objeto (objeto cujo o código foi identificado pela função findobj e 
que foi salvo na variável obj). Por Exemplo: 
V1=get(obj,‘String’) 
Porem get retorna uma cadeia de caracteres (cell-array). 
Para transformá-la em numero real é necessário usar a função de 
conversão str2double. 
Para exibir o resultado na caixa de diálogo utilizaremos a 
função findobj para identificar o objeto, no caso, o texto estático 
‘I1’ 
 -set configura o valor da propriedade do objeto. 
A função set configura a propriedade ‘String’ do objeto. O 
valor fornecido deve ser uma cadeia de caracteres. A função de 
conversão num2str transforma o valor numérico I1 em cadeia de 
caracteres. 
set(obj,‘String’,‘ValI1’) 
Então no editor de programas: 
 
 
 
Aplicações 
Serão listadas algumas funções para diferentes campos de 
trabalho. 
 Funções: Trigonométricas e Exponenciais. 
- exp(x): expoente. 
- log(x),log10(x),log2(x): logaritmo natural(ln), base 10 e base 2. 
- pow2(x): potencia base dois ( x2 ). 
- rem(x,y): resto da divisão de x por y. 
- sign(x): sinal de x. 
- fix(x): arredonda para o inteiro mais próximo de 0. 
- floor(x): arredonda para o inteiro mais próximo de - ∞. 
- ceil(x): arredonda para o inteiro mais próximo de + ∞. 
- round(x): arredonda para o inteiro mais próximo. 
 
 
 Teoria dos Números 
- factor(x): retorna fatores primos que compõem o numero 
fornecido. 
- isprime(x): verifica se o numero é primo. 
- lcm(x,y): mínimo múltiplo comum de x e y. 
- perms(v): retorna todas as permutações possíveis dos números 
dados. 
- factorial(x): retorna fatorial de x. 
 
 Análise de Dados Básica 
- max(x): retorna o valor máximo do vetor x. 
- min(x): retorna o valor mínimo do vetor x. 
- mean(x): retorna a média do vetor x. 
- median(x): retorna a mediana do vetor x. 
- sort(m): classifica em ordem crescente (colunas). 
- sortrows(m): classifica em ordem crescente (linhas). 
- sum(x): soma os elementos do vetor x. 
- prod(x): multiplica os elementos do vetor x. 
 
 Transformação de Coordenadas e Bases 
- [th,r]=cart2pol(x,y): converte coordenadas cartesianas em 
polares. 
- [x,y]=pol2cart(th,r): converte coordenadas polares em 
cartesianas. 
- [th,phi,r]=cart2sph(x,y,z): converte coord. cartesianas em 
esféricas. 
- [x,y,z]=sph2cart(th,phi,r): converte coord. Esféricas em 
cartesianas. 
 
 Polinômios e Interpolação de Dados 
- roots(v): retorna raízes do polinômio. 
- poly(v): Dado um vetor contendo as raízes de polinômios, 
retorna outro contendo os coeficientes deçle. 
- yn=polyval(p,xn): avalia valor do polinômio dado. 
- p=polyfit(x,y,n): retorna coeficientes de polinômio de grau n 
que melhor aproxima(método mínimos quadrados) a curva gerada 
por (x,y). 
 Otimização 
- fminbnd(‘equação’,a,b): retorna a coordenada x do valor 
minimo de uma função de uma variável f(x) em um intervalo fixo. 
- fzero(‘equação’,valor): retorna coordenada x, onde f(x)=0 a 
partir de um valor qualquer. 
 
 Integrais Numéricas 
- q=quad(‘eq’,a,b): avaliação de integral numérica.(valor da 
área) 
- a=dblquad(‘eq’,xmi,xma,ymi,yma): avaliação de integral 
dupla. 
- a=triplequad(‘eq’,xmi...): avaliação de integral tripla. 
 
 Funções de Data/Hora 
- clock: retorna data e hora como vetor numérico. 
- etime(clock,t0): tempo gasto(diferença entre tempo). 
 
 Funções de Cadeia de Caracteres 
- num2str(x): converte numero em cadeia de caractere. 
- str2double(x): converte cadeia de caractere em numero. 
-str2num(x): converte matriz de cadeia de caracteres em numero.

Continue navegando