Escolar Documentos
Profissional Documentos
Cultura Documentos
• extensão .m
• Linguagem interpretada
• Linguagem de tipagem dinâmica
• Linguagem de tipagem fraca
Software
Variáveis
• Declaração:
a = 5;
b = 'hello’
• Tipos:
int8, uint8, int16, double, logical, char
Para ver os demais tipos:
https://www.tutorialspoint.com/matlab/matlab_data_types.htm
Uso do ;
• Se colocado ; o resultado não é mostrado na linha de comando.
• Se não colocado, o resultado é mostrado.
>> a = 5;
>> b = 'hello'
b =
'hello'
Comentários
• Para comentar uma linha de código:
% Comentário
%{
Comentando
vários
comentários
%}
Algumas funções comuns
• display: imprime uma mensagem
• clear: limpa variáveis do espaço de trabalho, liberando memória
• clc: limpa janela de comando
• help: mostra documentação detalhada e informações sobre
comandos e funções do MATLAB
• whos: lista variáveis do espaço de trabalho com detalhes
>> a = 5;
>> whos
Name Size Bytes Class Attributes
a 1x1 8 double
Operadores e comparadores
for i = inicio:passo:fim
% código
end
while condicao
% código
end
Estruturas de repetição
for i = 1:10
if i > 5
break
end
i
end
var = 10;
while var ~= 1
var = var - 1;
var
end
Arrays
Operações entre arrays em MATLAB são extremamente eficazes, como
o próprio nome da linguagem sugere (Matrix Laboratory).
• Vetor coluna:
column_vector = [1; 2; 3; 4; 5];
• Concatenar vetores:
a = [1 2 3];
b = [4 5 6 7 8];
c = [a b]
Arrays
• Matriz:
matrix = [1 2 3; 4 5 6; 7 8 9];
• Concatenar matrizes:
a = [1 2 3; 4 5 6];
b = [7 8 9; 10 11 12];
c = [a b]
Arrays
Algumas funções comuns:
a = [10 11 19];
a(1)
a = [1 2 3; 4 5 6];
a(2, 3)
Performance de operações
matrix1 = rand(200, 200);
matrix2 = rand(200, 200);
Elapsed time is
0.009472 seconds.
tic
for i = 1:200 Elapsed time is
for j = 1:200
matrix1Val = matrix1(i, j);
0.000373 seconds.
matrix2Val = matrix2(i, j);
end
matrixRet1(i, j) = matrix1Val * matrix2Val;
ans =
end
toc
tic
logical
matrixRet2 = matrix1 .* matrix2;
toc
isequal(matrixRet1, matrixRet2)
1
Uso do :
Usando :, é possível criar vetores de forma prática e indexar vários
elementos de uma vez.
• Criando vetor:
• a = 1:10 cria um vetor cujos elementos vão de 1 à 10 (passo 1)
• a = 2:5:30 cria um vetor cujos elementos vão de 2 à 30 com
passo 5 (2 7 12 17 22 27)
Uso do :
• Indexando vários elementos em um vetor:
>> a = [1 3 6 8 10];
>> a(1:3)
ans =
1 3 6
Uso do :
• Indexando vários elementos em uma matriz:
>> a = [1 2 3; 4 5 6; 7 8 9];
>> a(1:2, :)
ans =
1 2 3
4 5 6
Arquivos .m
Arquivos com a extensão característica do MATLAB .m podem ser de
dois tipos:
• Sem retorno:
% nome_funcao.m
function nome_funcao(arg1, arg2, ..., arg3)
% escopo da função
end
Funções
• Exemplo:
% fatorial.m
function ret = fatorial(n)
ret = 1;
for i = 2:n
ret = ret * i;
end
end
Funções
• Exemplo:
% fatorial.m
function fatorial(n)
ret = 1;
for i = 2:n
ret = ret * i;
end
• Exemplo:
a = ones(5, 4);
[linhas, colunas] = size(a);
Exercícios
1. Crie duas arrays 5x5x3 com valores aleatórios
2. Multiplique-as elemento-a-elemento e guarde o resultado em uma variável
3. Divida a array resultante por 2, atualizando o valor da variável
4. Guarde em uma variável a subarray composta pelas linhas 1 à 5, colunas 1 à 3 e
páginas 1 à 3 da array resultante
5. Concatene a array da 3ª etapa com a array da 4ª etapa, guardando o resultado
em uma variável
6. Crie uma função que, dada uma array tridimensional como entrada, retorne o
maior e menor valor dela, encontrados iterativamente
7. Receba os valores retornados pela função acima, com a entrada sendo a array
da 5ª etapa, e imprima-os
PS: Todas as etapas, com exceção da criação da função, devem ser feitas no mesmo
arquivo de extensão .m (ou seja, no mesmo script).