Escolar Documentos
Profissional Documentos
Cultura Documentos
éRi
car
doBackes
backes@f
acom.
ufu.
br
Uni
ver
sidadeFeder
aldeUber
lândi
a-Facul
dadedecomput
ação
1. Comandos Iniciais .......................................................................................................... 3
1.1. Definição de Variáveis ........................................................................................... 3
1.2. Separadores de Comandos...................................................................................... 3
2. Retorno de Funções ........................................................................................................ 3
3. Números Complexos ...................................................................................................... 3
4. Criando Matrizes ............................................................................................................ 4
4.1. Definindo uma Matriz ............................................................................................ 4
4.2. Rotinas para criação de uma Matriz ....................................................................... 4
4.3. Acessando elementos de Matrizes.......................................................................... 5
4.4. Concatenação de Matrizes ...................................................................................... 5
5. Operador : ....................................................................................................................... 6
5.1. Operador : e Matrizes ............................................................................................. 7
5.2. Exclusão de Linhas ou Colunas.............................................................................. 7
6. Operações com Matrizes ................................................................................................ 7
7. Criando Funções............................................................................................................. 9
8. Operadores Aritméticos.................................................................................................. 9
9. Operadores Lógicos...................................................................................................... 12
10. Estruturas Condicionais................................................................................................ 12
10.1. Laço for ............................................................................................................ 12
10.2. Laço while ........................................................................................................ 13
10.3. Comandos if e if-else........................................................................................ 13
10.4. Comando switch case ....................................................................................... 14
10.5. Comando continue e break ............................................................................... 14
11. Rotinas Utéis ................................................................................................................ 14
11.1. A função Find ................................................................................................... 14
11.2. O comando disp ................................................................................................ 14
11.3. O comando Input .............................................................................................. 15
11.4. Funções Básicas................................................................................................ 15
12. Comandos Gráficos ...................................................................................................... 16
12.1. Desenhando Curvas .......................................................................................... 16
12.2. Estilos de Linhas e Cores do Comando plot e plot3......................................... 17
12.3. Desenhando Superfícies ................................................................................... 18
12.4. Comando colorbar ............................................................................................ 20
12.5. Inserindo Anotações num Gráfico.................................................................... 21
12.6. O comando figure ............................................................................................. 21
12.7. Particionando a Tela ......................................................................................... 22
13. Manipulando Strings .................................................................................................... 22
14. Acessando Arquivos ..................................................................................................... 24
14.1. Comando dlmread ............................................................................................ 25
14.2. Comando dlmwrite ........................................................................................... 25
14.3. Comando textread............................................................................................. 25
14.4. Comando fopen ................................................................................................ 25
14.5. Comando feof ................................................................................................... 26
14.6. Comando fclose ................................................................................................ 26
14.7. Comando fgetl .................................................................................................. 26
14.8. Comando fprintf ............................................................................................... 26
1. Comandos Iniciais
1.1. Definição de Variáveis
Para atribuir um valor a uma variável, basta digitar o nome da variável, seguida pelo sinal
de atribuição ( = ), seguido pelo valor.
O Matlab é CaseSensitive, ou seja X e x são diferentes.
Ex:
X=7
x=2.3
nome = ‘teste’
2. Retorno de Funções
Deve-se tomar um certo cuidado com as funções do MatLab
Diferente das funções existentes em outras linguagens, o MatLab possui funções que
retornam mais de um valor de uma única vez.
Ex:
[a,b] = size(m);
A função size retorna as dimensões de uma matriz. Nesse caso, a recebe o valor da
quantidade de linha e b o valor da quantidade de colunas.
3. Números Complexos
Um número complexo possui a seguinte forma: a + bi
O MatLab entende as letras i e j como √-1, por isso é aconselhado não utilizar tais letras
como nomes de variáveis.
C = [16; 5; 9; 4]
C=
16
5
9
4
A(2,3) = 11
B = 16 3 2 13
B(2) = 3
A = [B C; D E];
As matrizes B e C serão organizadas em uma linha, enquanto as matrizes D e E serão
organizadas em outra.
Ex:
B = [1 30 7 ; 5 1 18; 1 4 10];
C = [16 2 13; 5 10 8; 9 6 7 ];
D = [16 3 13; 6 7 12; 4 14 1];
E = [5 11 8; 6 7 12; 4 15 1];
A = [B C; D E]
A=
1 30 7 16 2 13
5 1 18 5 10 8
1 4 10 9 6 7
16 3 13 5 11 8
6 7 12 6 7 12
4 14 1 4 15 1
5. Operador :
Trata-se de um poderoso operador do MatLab.
Por meio dele é possível fazer a enumeração intervalada de dados.
Ele permite que selecionemos um intervalo de valores com um determinado espaçamento.
Ex:
1:10
ans = 1 2 3 4 5 6 7 8 9 10
1:3:27
ans = 1 4 7 10 13 16 19 22 25
60:-7:0
ans = 60 53 46 39 32 25 18 11 4
0:pi/4:pi
ans = 0 0.7854 1.5708 2.3562 3.1416
X(:,2) = [ ]
X=
16 2 13
5 11 8
9 7 12
4 14 1
b=
34.0000 0 0 0
0 8.9443 0 0
0 0 -8.9443 0
0 0 0 0.0000
7. Criando Funções
De um modo geral, as funções no MatLab são definidas da seguinte forma:
Pode se definir para um função quantos parâmetros de entrada se desejar. O mesmo vale
para os parâmetros de saída.
É aconselhado criar um novo arquivo para cada função criada. Também é aconselhado
utilizar o mesmo nome da função para o arquivo dela.
Ex:
function m = soma(a,b);
m = a + b;
8. Operadores Aritméticos
+ : Soma
Realiza a soma de 2 ou mais números.
No caso de matrizes, realiza a soma termo a termo.
Ex:
B=A+A
B=
32 4 6 26
10 22 20 16
18 14 12 24
8 28 30 2
- : Subtração
Calcula a diferença entre 2 ou mais números.
No caso de matrizes, calcula a diferença termo a termo.
Ex:
C=A-A
C=
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
/ : Divisão
Realiza a divisão entre dois números.
No caso de matrizes a divisão atua de maneira diferente.
A Expressão
C = A / B;
É equivalente a
C = A * inv(B);
Ex:
B = A ./ A
B=
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
* : Multiplicação
Realiza a multiplicação entre dois números.
No caso de matrizes, é calculado o produto matricial.
Ex:
C = A*A
C=
345 257 281 273
257 313 305 281
281 305 313 257
273 281 257 345
.* : Multiplicação Termo a Termo
Realiza a multiplicação entre dois números.
No caso de matrizes, realiza a multiplicação termo a termo da matriz. Para isso, as matrizes
devem ter o mesmo tamanho.
Ex:
B = A .* A
B=
256 4 9 169
25 121 100 64
81 49 36 144
16 196 225 1
^ : Potência
Realiza a operação de potenciação entre dois números.
No caso de matrizes, é calculado o produto matricial n vezes.
Ex:
C=A^2
C=
345 257 281 273
257 313 305 281
281 305 313 257
273 281 257 345
mod(13,5)
Ans = 3;
9. Operadores Lógicos
São operadores que servem para comparar dois elementos no MatLab.
Podem ser aplicados à números escalares ou à matrizes.
Se o resultado da comparação for verdadeiros, o operador retorna 1. Se o resultado da
comparação for falso, retorna 0.
Alguns operadores lógicos podem ser aplicados apenas sobre números escalares ou
matrizes. Esses operadores são:
A == B :Igualdade
A<B :Menor
A <= B :Menor ou igual
A>B :Maior
A >= B :Maior ou igual
A ~= B :Diferente
Alguns operadores lógicos podem ser aplicados apenas sobre valores lógicos. Esses
operadores são:
Ex:
a = l;
b = 15;
while a<b
a = a+l
b = b-l
end;
Ex:
x=1;
y=5;
if x<y
x=x+1;
else
y=y+1;
end;
10.4. Comando switch case
Parecido com o comando if-else, este comando permite que se escolha uma opção entre
várias dependendo do resultado de uma variável ou expressão.
Ex:
switch A(2,2)
case 0
A(2,2) = A(2,2) +1;
case 1
A(2,2) = A(2,2) +3;
case 2
A(2,2) = A(2,2) +5;
otherwise
A(2,2) = 0;
end;
O comando continue interrompe a execução do laço e faz com que ele avance para a sua
próxima iteração, pulando a que estava.
O comando break interrompe a execução do laço e o termina, fazendo com que o MatLab
pule para a primeira instrução fora do laço.
Retornar todos elementos de A que são maiores que 10 e menores que 50.
X = find(A>10 & A<50);
user_entry = input('prompt')
user_entry = input('prompt','s')
Ex:
Plotando Vetores:
plot(Y): plota o vetor Y contra os índices de seus elementos.
plot(X,Y): plota o vetor X contra o vetor Y, onde ambos possuem o mesmo número
de elementos.
plot(X1,Y1, X2,Y2,... Xn,Yn): plota X1 versus Y1, X2 versus Y2,…, Xn versus Yn
num mesmo gráfico.
Plotando Matrizes:
plot(Y): Se Y é uma matriz, plota as colunas de Y versus o índice da linha.
plot(X,Y): Se Y é uma matriz e X um vetor, plota as linhas ou colunas de Y versus
o vetor X. O mesmo vale no caso de X ser a matriz e Y o vetor.
plot(X,Y): Se X e Y são matrizes de mesma dimensão, plota as colunas de X versus
as colunas de Y.
Obs: O comando plot3 funciona de forma semelhante ao comando plot. A diferença é que
ele utiliza 3 parâmetros de dados
Ex:
plot3(X,Y,Z)
plot(X,Y,config)
Ex:
X = 0:0.05:1;
plot(X,X.^2,’k*’)
plot(X,X.^2,’k --‘)
Esses comandos desenham uma superfície que esteja contida numa matriz.
Podem ser usados de 2 formas básicas:
comando(Z): a superfície será desenhada sem nenhuma informação referente aos eixos X e
Y
comando(X,Y,Z): a superficie será desenhada levando em consideração o dominio de X e
Y.
Obs: a palavra comando pode ser substituída por mesh, surf, contour ou contour3.
Obs: Esses comandos podem ser utilizados tanto para desenho de gráficos como de
superfícies.
figure(1);
plot(x);
figure(2);
plot(y);
Ex:
Visualizando um elemento
texto(3)= ‘s’;
Selecionando um trecho da string
texto(3:8) = ‘so é u’;
Apesar de o MatLab ser um software voltado para cálculos matemáticos, possui ainda
diversas rotinas para manipulação de strings. Tais rotinas nos ajudam em tarefas de
comparação de strings entre outras tarefas. Abaixo segue algumas dessas rotinas.
findstr
Procura a string menor na maior e retorna a posição inicial dela.
É Case-Sensitive.
Exemplo:
x=findstr(str1,str2);
strcmp
Compara duas strings. Retorna 1 se iguais, 0 se diferentes. CaseSensitive.
Exemplo:
x=strcmp(str1,str2);
strcmpi
Compara duas strings. Retorna 1 se iguais, 0 se diferentes. Não é CaseSensitive.
Exemplo:
x=strcmpi(str1,str2);
strtok
Separa uma string em duas partes, usando como separador um token.
Exemplo:
[str1,str2] = strtok(string,separador);
strcat
Faz a concatenação de 2 ou mais strings.
Exemplo:
x= strcat(str1,str2);
deblank
Remove espaços do final da string
Exemplo:
x = deblank(string);
sprintf
Escreve dados formatado numa string
Exemplo:
X = sprintf(formato,variavel);
sscanf
Le dados formatados de uma string
x = sscanf(variavel, formato);
OBS: As rotinas sprintf e sscanf necessitam de um parâmetro formato para trabalharem
direito. Esse parâmetro informa como o dado deve ser transformado durante a leitura ou
escrita. Entre os possíveis formatos estão:
%s : texto (string)
%d : decimal
%e : exponencial
%f : ponto fixo (quando usado com sprintf, pode-se definir número de casas. Ex: %12.5f )
int2str
Converte um número inteiro para string;
Ex:
int2str(5)
ans = ‘5’;
num2str
Converte um número qualquer para string;
Ex:
num2str(5.234)
ans = ‘5.234’;
str2num
Converte uma string para um número qualquer.
Ex:
strtonum(‘5.235’);
ans = 5.235;
strtoint
Converte uma string para um número inteiro.
Ex:
str2int(‘52’);
ans = 52;
str2double
Converte uma string para um valor de dupla precisão.
Ex:
strtonum(‘5.235’);
ans = 5.235;
Ex:
M = dlmread(‘matriz.txt’,’ ‘);
Ex:
dlmwrite(‘matriz.txt’,M,’ ‘);
Ex:
[x,y,z]=textread(nome_arquivo,'%d %d %f');
Para arquivos binários: 'r' (leitura), 'w' (escrita), 'a' (continuar escrevendo).
Para arquivos binários: 'rt' (leitura), 'wt' (escrita), 'at' (continuar escrevendo).
Ex:
fid = fopen(‘matriz.txt’, ‘rt’);
Função que verifica se um arquivo que foi aberto com fopen já chegou ao seu final. A
função retorna 1 se esta no fim do arquivo e 0 no caso contrário.
Ex:
X = feof(fid);
Fecha um arquivo aberto com fopen, com base no seu numero de identifcação
Ex:
fclose(fid);
Ex:
fid=fopen('teste.txt','rt');
while ~feof(fid)
tline = fgetl(fid);
disp(tline);
end;
fclose(fid);
x = 0:0.1:1;
y = [x; exp(x)];
fid = fopen('novo.txt','wt');
fprintf(fid,'%6.2f %12.8f \n',y);
fclose(fid);