1.
Utilizando o HELP
Para isso, basta digitar help e em seguida a função requerida
2. Formatação
No MATLAB não há necessidade de declarar o tipo das variáveis utilizadas no programa, mas o
usuário pode escolher qual o formato que vai ser utilizado
3. Operações básicas com escalares
4. Algumas constantes
5. Vetores e Matrizes
5.1. Definindo vetores
a = [1 2 3] ou a = [1,2,3]. Nesse caso, a variável a é definida como um vetor de dimensão 1 × 3.
>> a = 1 2 3
Se fosse desejado escrever um vetor coluna b bastaria escrever entre colchetes os elementos
separados por ponto-e-vírgula (;),
b = [1;2;3]. Nesse caso, a variável b é definida como um vetor de dimensão 3 × 1.
>> b = 1
5.2. Definindo matrizes
Os elementos de cada linha são separados por espaços ou vírgulas, enquanto as diferentes
linhas são separadas por ponto-e-vírgula.
A = [1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]
>> A =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
5.3. Acesso aos elementos de vetores e matrizes
Para acessar algum elemento específico em um vetor ou matriz, é necessário informar sua
localização em termos de linha e de coluna ocupada.
Considere, por exemplo, a matriz A do exemplo anterior. Para acessar o elemento da segunda
linha, quarta coluna, basta escrever A(2,4), obtendo
>> A(2,4)
ans = 8
Portando, basta escrever entre parênteses o número da linha seguido pelo número da coluna,
separados por vírgula.
Vale lembrar que em Matlab a contagem dos elementos das linhas e colunas começa em 1, de
forma que não existem os elementos A(0,0), A(0,·) ou A(·,0).
Para acessar todos os elementos da segunda linha de A. Nesse caso, basta fazer A(2,:):
>> A(2,:)
ans = 5 6 7 8
O mesmo raciocínio pode ser estendido para as linhas de A:
> >A(:,3)
ans = 3
11
15
Para acessar elementos específicos basta especificar a posição da linha e coluna
>> A(2,2:3)
ans = 6 7
>> A(2,2:end)
ans = 6 7 8
Se deseja acessar apenas os elementos das linhas 2 e 3 de A, nas colunas 1 e 3. Isso pode ser
escrito como A([Link], [Link]).
>> A([Link], [Link])
ans = 5 7
9 11
Quando foi usado [Link] 3, o programa interpretou o comando como “todos os números entre 2
e 3 (incluindo 2), considerados usando um passo 1”. Dessa forma, as linhas 2 e 3 são
consideradas. De forma equivalente, o comando [Link] significa “todos os números entre 1 e 4
(incluindo 1), considerados segundo um passo 2”. Isso implica que a coluna 1 e a coluna 3 (=1+2)
são consideradas. A próxima coluna que seria considerada, se existisse, seria a coluna 5 (=3+2).
De fato, usar 2:3 ou [Link] são formas equivalentes, pois para o Matlab o passo 1 já fica implícito.
Uma outra possibilidade é usar um passo negativo, por exemplo, 4:−2:1. Nesse caso, os números
são acessados de forma decrescente.
>> A(2:3,4:-2:1)
ans = 8 6
O mesmo raciocínio se estende para os vetores
>> c = [1 2 3 4 5 6]
c= 1 2 3 4 5 6
>> c(1,[Link]) ou >> c([Link])
ans = 3 4 5
5.4. Operações matemáticas
5.4.1. Soma e subtração
A soma e subtração de todos os elementos de uma matriz com um número é feita da seguinte
maneira:
>> B= A +1
B = 2 3 4 5
6 7 8 9
10 11 12 13
14 15 16 17
>> c = c+1
c= 2 3 4 5 6 7
5.4.2. Multiplicação e divisão
C = A*A = A^2
C= 90 100 110 120
202 228 254 280
314 356 398 440
426 484 542 600
Se for desejado realizar outra operação matemática (exceto a soma e a subtração) entre os
elementos com mesmo índice das matrizes deve-se colocar um ponto antes do operador.
>> D = A.*A = A.^2
D= 1 4 9 16
25 36 49 64
81 100 121 144
169 196 225 256
5.5. Propriedades de matrizes
A transposição de matrizes e vetores é uma necessidade recorrente em cálculo matricial. No
Matlab, a transposição é indicada por um apóstrofe (’) colocado após a vetor/matriz que se
deseja transpor.
>> A'
ans = 1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
det(A) → Calcula o determinante da matriz A
>> det(A)
ans = -1.4392e-30
trace(A) → Retorna a soma dos elementos da diagonal principal da matriz A
>> trace(A)
ans = 34
inv(T) → Retorna a matriz inversa da matriz T
>> T = [1,2;2,2]
T= 1 2
2 2
>> inv(T)
ans = -1.0000 1.0000
1.0000 -0.5000
5.6. Criando matrizes e vetores
5.6.1. Números aleatórios
>> rand([2:3]) números aleatórios
ans = 0.8491 0.6787 0.7431
0.9340 0.7577 0.3922
>> randi(max,2,3) números aleatórios inteiros
ans = 4 5 2
2 1 1
Sendo que max é o maior número definido, no exemplo utilizamos max = 6
5.6.2. Espaçamento controlado
Vetor genérico x = [Valor inicial: espaçamento: valor final]
Ex:
>> t = [Link]
t = 0 1 2 3 4 5 6 7 8 9 10
Vetor genérico x = linspace ( valor inicial, valor final, quantidade de elementos)
Ex:
>> t = linspace(-10,10,5)
t = -10 -5 0 5 10
6. Números complexos
O MATLAB proporciona um conjunto de funções que auxilia o manuseio de números complexos.
Inicialmente, para definir um número complexo utilizam-se os operadores i e j (na elétrica a
gente usa mais o j, para não confundir o i como a corrente). Por exemplo, para definir a = 5 + 8i,
faz-se:
Ou também podemos utilizar a função complex
c = complex(a,b) → Retorna, em c, o número complexo de parte real a e parte imaginária b
>> c = complex(2,3)
c = 2.0000 + 3.0000i
7. Funções
Uma importante função do M-File (script) é a criação de funções. A declaração inicial é da
seguinte forma:
Basicamente teremos 02 ou mais scripts, sendo eles o script da função e o script principal onde
você chamará o script da função.
Importante: o Script da função deve ter o mesmo nome da função e deve ser salvo na mesma
pasta do script principal.
Diante disso, para chamar a função, basta digitar na janela de comando o nome da função com
as entradas entre parênteses.
Exercício: Criar uma função que converta o modulo(r) e ângulo (φ) do número complexo para a
sua forma retangular.
𝑥 +𝑦 =𝑟
𝑦
tan(𝜑) =
𝑥
Então:
𝑥 = 𝑟 − (𝑥𝑡𝑎𝑛(𝜑))²
𝑟
𝑥=
1 + tan(𝜑)
y = x ∗ tan(𝜑)
function[real, img]= conversao(modulo,theta)
real = sqrt((modulo^2)/(1+tan(theta)^2));
img = theta*real;
“chamando a função” no arquivo principal
[x,y]=conversao(a,b)
8. Gráficos
A função plot é a mais comumente usada para criar figuras 2D em Matlab. Em sua forma mais
simples de uso, ela recebe como argumentos um vetor de dados correspondente aos valores da
abcissa e um vetor de dados com as informações do eixo das ordenadas. Exemplo.:
>> a = 0:0.1:2*pi;
>> b = sin(a);
>> plot(a,b)
Se não for informado o vetor do eixo das abcissas, a função plot ainda realiza a plotagem do
gráfico, assumindo que os valores do eixo x começam em 1 e estão espaçados de uma unidade
entre si.
>> plot(b)
A função plot também pode ser usada para plotar mais do que uma figura. Nesse caso, é
necessário informar (nessa ordem), os dados da primeira abcissa x, da primeira ordenada y, da
outra abcissa x e do segundo y. Exemplo:
>> c = cos(a);
>> plot(a,b,a,c)
>> help plot
>> plot(a,b,'c+:',a,c,'mp-')
8.1. Titulos e legendas
Para colocar t´título em gráficos, basta usar o comando
>> title('funções trigonometricas')
A legenda também costuma ser usada durante a plotagem de diversas curvas em uma mesma
figura, com o intuito de evitar ambiguidades na identificação. Para adicionar legenda a uma
figura, basta usar:
>> legend('seno','cos')
Um outro recurso típico em gráficos é o uso de texto para identificação das grandezas nos eixos.
Para acrescentar informações aos eixos x e y de uma figura, basta usar os comandos
>> xlabel('angulo [rad]')
>> ylabel('fç')
fç
8.2. Figure
Se quiser plotar 02 figuras, utilize o comando figure para não sobrepor as imagens.
>> figure(1)
>> plot(b)
>> figure(2)
>> plot(c)
8.3. Subplot
Se quiser plotar várias funções na mesma figura sem sobrepor nenhuma, basta utilizar o
subplot(m,n,p), sendo que m é o numero de linhas, n o número de colunas e p a posição.
>> subplot(2,1,1)
>> plot(b)
>> subplot(2,1,2)
>> plot(c)
8.4. Sobreposição
Pode utilizar a função hold on e hold off para congelar a imagem e plotar figuras sobrepostas.
t = 0:0.1:2*pi
b = sin(a)
plot(t,b)
hold on
plot(pi/2,0,'r*')
hold off
9. Extra
Simulink
Abrir arquivos do simulink, excel e osciloscópio
Ex: Prática 8 e 9 de Controle 1
%%Osciloscopio---------------------------
%csvread('Nome do arquivo',Celula da leitura)
dados=csvread('scope_4.csv', 427);
tempo=dados(:,1);
inicio=1;
fim=723;
tensao = dados(inicio:fim,2);
nivel = tensao*(190/7.7727);
delta = 0.25;
T2 = (0:delta:(fim-inicio)*delta);
figure(1)
plot(T2, nivel)
title("Osciloscópio")
xlabel("Tempo [s]")
ylabel("Altura [mm]")
grid on
%%Excel--------------------------
filename = '[Link]';
xlsrange = 'B11:C27';
%xlsread ('nome do arquivo',aba do excel, celula da leitura )
nivel_medido = xlsread(filename,1,xlsrange);
figure(2)
plot(nivel_medido( :,1), nivel_medido( :,2))
title("Tabela Excel")
xlabel("Tempo [s]")
ylabel("Altura [mm]")
grid on
%%Simulink---------------------------------
sim('[Link]');
figure(3)
plot ([Link], [Link])
title("Simulink")
xlabel("Tempo [s]")
ylabel("Altura [mm]")
grid on
figure(4)
plot(T2, nivel, 'r', nivel_medido( :,1), nivel_medido( :,2), 'g',
[Link], [Link])
legend("Osciloscópio","Tabela Excel","Simulink")
title("Comparação entre resultados obtidos")
xlabel("Tempo [s]")
ylabel("Altura [mm]")
grid on
EXERCICIOS
4.1 Vetores e matrizes
a) Crie um vetor x com 5 números inteiros.
b) Crie uma matriz A de dimensão 4 × 4 com números inteiros.
c) Obtenha o vetor y transposto de x.
d) Obtenha a matriz B transposta de A.
e) Crie um vetor z com 5 elementos aleatórios reais. (Utilize a função rand)
f) Crie uma matriz C de dimensão 4 × 4 com números reais não-inteiros maiores que 1.
4.2 Formatos de apresentação
a) Apresente as variáveis x, A, z e C mostrando 5 d´dígitos (formato short do MATLAB)
b) Apresente as variáveis x, A, z e C mostrando 5 d´dígitos no formato exponencial (formato
short e do MATLAB)
c) Apresente as variáveis x, A, z e C mostrando 15 d´dígitos (formato long do MATLAB)
d) Apresente as variáveis x, A, z e C mostrando 15 d´dígitos no formato exponencial (formato
long do MATLAB).
4.4 Operações com matrizes
a) Obtenha a soma das matrizes A e C.
b) Obtenha a subtração entre as matrizes A e C.
c) Obtenha a multiplicação matricial entre as matrizes A e C.
d) Obtenha a multiplicação elemento a elemento entre as matrizes A e C.
e) Obtenha a inversa da matriz A.
f) Obtenha a divisão pela esquerda entre as matrizes A e C (A\C).
g) Obtenha a divisão pela direita entre as matrizes A e C (A/C).
h) Obtenha a divisão elemento a elemento entre as matrizes A e C.
i) Obtenha um vetor com a exponencial de cada elemento do vetor x (e^x).
j) Obtenha a exponencial da matriz A (e^A).
k) Obtenha a quarta potência de cada elemento do vetor x.
l) Obtenha o quadrado da matriz A.
4.5 Vetores com espaçamento controlado
a) Obtenha um vetor t1 iniciando em 0 e terminando em 10 com espaçamento de 1.
b) Obtenha um vetor t2 iniciando em 0 e terminando em 10 com espaçamento de 0.1.
c) Obtenha um vetor t3 iniciando em −10 e terminando em 10 com 5 elementos espaçados
linearmente. (Utilize a função linspace)
d) Obtenha um vetor t4 iniciando em 50 e terminando em 0 com espaçamento de 10.
4.6 Manipulação de matrizes
a) Obtenha a matriz A2 contendo os elementos das linhas 3 até 4 e das colunas 1 até 2
da matriz A.
b) Obtenha a matriz A3 acrescentando uma linha na matriz A contendo os quatro primeiros
elementos do vetor x.
4.3 Números complexos
1. Crie um vetor com números complexos: k = [3 + 5i, 2 − 10j]
2. Crie uma matriz com números complexos D = [3 + 5i, 2 − 10j; 7 − 13j, 1.7 − 4j]
3. Obtenha um vetor mod_k com os m´módulos dos números complexos do vetor k.
4. Obtenha um vetor ang_k com os ângulos dos números complexos do vetor k.
5. Obtenha uma matriz mod_D com os m´módulos dos números complexos da matriz D.
6. Obtenha uma matriz ang_D com os ângulos dos n´umeros complexos da matriz D.
7. Obtenha a matriz E transposta de D.
8. Obtenha a matriz F conjugada transposta de D.
4.7 Funções
a) Crie uma função que receba como entrada um vetor t e gere como saída um vetor p
com a seguinte relação p = t^2 + sen(2t) + 50.
b) Obs.: Abra um novo Script e chame a função a partir do arquivo da prática. Nomeie
o arquivo .m como funcTeste.
1) Utilize o vetor t1 como entrada.
2) Utilize o vetor t2 como entrada.
4.8 Gráficos
a) Gere um gráfico contendo os dados de p1 como função de t1 obtidos na Seção 4.7 com
marcadores * em vermelho em cada ponto.
b) Na mesma figura, sobreponha um gráfico de linha verde contínua contendo os dados
de p2 como função de t2 obtidos na Seção 4.7.
c) Adicione um t´título para o gráfico.
d) Adicione nomes nos eixos x e y do gráfico.
e) Adicione uma legenda no gráfico identificando os dois grupos de dados ilustrados.
f) Coloque a grade no gráfico.