Mudanças entre as edições de "FIC MATLAB 2017-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 344: Linha 344:
 
:: <math> \overrightarrow{a} = 2\overrightarrow{i} + 3\overrightarrow{j} - 2\overrightarrow{k}</math>
 
:: <math> \overrightarrow{a} = 2\overrightarrow{i} + 3\overrightarrow{j} - 2\overrightarrow{k}</math>
 
:: <math> \overrightarrow{b} = - 3\overrightarrow{i} - 5\overrightarrow{k}</math>
 
:: <math> \overrightarrow{b} = - 3\overrightarrow{i} - 5\overrightarrow{k}</math>
 
* Entrada/Saída de dados e Texto
 
:* Comando ''input'' para entrada de dados
 
:* Comando ''disp'' e ''num2str''
 
:* Exercício: Criar uma calculadora de IMC com perguntas (''input'') para massa e altura, aparecendo na sequência o resultado
 
  
 
* Polinômios
 
* Polinômios
Linha 364: Linha 359:
 
[[Imagem:Matlab_poly_EX5.jpg|thumb|600px|center]]
 
[[Imagem:Matlab_poly_EX5.jpg|thumb|600px|center]]
  
* Estruturas
 
:* Criando estruturas
 
:* Criando estruturas com o comando ''struct''
 
:* Comando ''rmfield'' para remover campo da estrutura
 
:* Comando ''isfield'' para identificar se um campo existe ou não
 
 
* Arranjo de células: texto e números
 
:* Comando ''celldisp'' e ''cellplot''
 
 
[[Image:Exercícios 1 Aula 5 FIC Matlab.jpeg|600px|center]]
 
 
{{collapse bottom}}
 
{{collapse bottom}}
  
 
=== Aula 6 ===
 
=== Aula 6 ===
{{collapse top| bg=lightblue | 30/Ago}}
+
{{collapse top| bg=lightblue | 30/Ago - Texto; Entrada e saída; Estruturas; Células; Operadores; Scripts; Controle de fluxo de dados}}
  
- Funções trigonométricas; <br/>
+
* Trabalhando com texto
- Funções hiperbólicas; <br/>
+
* Entrada/Saída de dados e Texto
- Função definida pelo usuário no arquivo ''.m''; <br/>
+
:* Comando ''input'' para entrada de dados
 +
:* Comando ''disp'' e ''num2str''
 +
:* Exercício: Criar uma calculadora de IMC com perguntas (''input'') para massa e altura, aparecendo na sequência o resultado
  
Exercício: Criar uma função no arquivo ''.m'' da definição pelo exponencial do cosseno hiperbólico e do seno hiperbólico, comparando com a funções já existentes (''cosh'' e ''sinh''), plotar as curvas idênticas em 2 figuras (arquivo ''.m'' 1). Criar um novo arquivo ''.m'' com valores de entrada de <math>-\pi</math> até <math>\pi</math> (arquivo ''.m'' 2). <br/>
+
* Arranjo de células: texto e números
 +
:* Comando ''celldisp'' e ''cellplot''
  
- Importar arquivo para o Matlab, pelo menu e pelo comando ''uiimport''; <br/>
+
[[Image:Exercícios 1 Aula 5 FIC Matlab.jpeg|600px|center]]
  
Exemplo: usar [[http://wiki.sj.ifsc.edu.br/images/8/84/Celular4g.txt Celular4g‎.txt]], importar e trabalhar com as funções de matrizes. <br/>
+
* Estruturas
 
+
:* Criando estruturas com o operador "."
- Padronizar para o formato que o Matlab reconhece os números: ponto (''.'') e ('','');<br/>
+
:* Criando estruturas com o comando ''struct''
- Converter formato ''table2array''.<br/>
+
:* Comando ''isfield'' para identificar se um campo existe ou não
 
+
:* Comando ''rmfield'' para remover campo da estrutura
{{collapse bottom}}
 
  
=== Aula 7 ===
+
[[Imagem:Matlab_Struct1.jpg|thumb|600px|center]]
{{collapse top| bg=lightblue | 01/Set}}
+
[[Imagem:Matlab_Struct2.jpg|thumb|600px|center]]
Exercício: com o arquivo [[http://wiki.sj.ifsc.edu.br/index.php/Arquivo:Add_user.txt Add_user.txt]] (Adições Líquidas de Aparelhos 4G das Operadoras no período), calcular a soma dos anos 2014, 2015 e 2016 (até o momento) por operadora e a soma e a média por período.<br/>
 
  
- Tipos de códigos: Sequenciais, Condicionais e Iterativos;<br/>
+
* Operadores:
 +
:* Operadores relacionais:
  
Operadores relacionais
 
 
{| border="4" cellpadding="2"
 
{| border="4" cellpadding="2"
 
! '''Operador relacional'''
 
! '''Operador relacional'''
Linha 418: Linha 404:
 
|}
 
|}
  
Operadores de curto circuito
+
:* Operadores lógicos:
 +
 
 
{| border="4" cellpadding="2"
 
{| border="4" cellpadding="2"
 
! '''Operador'''
 
! '''Operador'''
Linha 426: Linha 413:
 
|-
 
|-
 
| <math>||</math> || OU
 
| <math>||</math> || OU
|} <br/>
+
|}
  
- As sentenças ''if'', ''else'' e ''elseif''. <br/>
+
* Uso de scripts (arquivo ".m")
  
Exercício: Criar um código que calcula o valor total da compra de algumas unidades de arroz (5kg), feijão (1kg) e café (500g). <br/>
+
* Controle de fluxo de dados:
O preço unitário do arroz é R$15,00. Se comprar 3 o preço cai para R$14,00 cada.<br/>
+
:* As sentenças ''if'', ''else'' e ''elseif''
O preço unitário do feijão é R$12,00. Se comprar 4 o preço cai para R$11,50 cada.<br/>
+
:* '''Exercício''': Criar um código que calcula o valor total da compra de algumas unidades de arroz (5kg), feijão (1kg) e café (500g)
O preço unitário do café é R$10,00. Se comprar 3 o preço cai para R$9,25 cada.<br/>  
+
::* Condições:
 +
:::# O preço unitário do arroz é R$15,00. Se comprar 3 o preço cai para R$14,00 cada
 +
:::# O preço unitário do feijão é R$12,00. Se comprar 4 o preço cai para R$11,50 cada
 +
:::# O preço unitário do café é R$10,00. Se comprar 3 o preço cai para R$9,25 cada
 +
::* Colocar opção de entrada de dados com ''input'' e condição que não existe unidade negativa
 +
:* Estruturas de repetição:
 +
::* Laços ''for''
 +
::* Laços ''while''
 +
 
 +
* Função definida pelo usuário no arquivo ''.m''
 +
 
 +
{{collapse bottom}}
 +
 
 +
<!--
 +
 
 +
=== Aula 7 ===
 +
{{collapse top| bg=lightblue | 01/Set}}
 +
 
 +
* Importação de dados para o Matlab
 +
:* Pelo menu
 +
:* Pelo comando ''uiimport''
 +
 
 +
Exemplo: usar [[http://wiki.sj.ifsc.edu.br/images/8/84/Celular4g.txt Celular4g‎.txt]], importar e trabalhar com as funções de matrizes. <br/>
 +
 
 +
- Padronizar para o formato que o Matlab reconhece os números: ponto (''.'') e ('','');<br/>
 +
- Converter formato ''table2array''.<br/>
 +
 
 +
 
 +
Exercício: com o arquivo [[http://wiki.sj.ifsc.edu.br/index.php/Arquivo:Add_user.txt Add_user.txt]] (Adições Líquidas de Aparelhos 4G das Operadoras no período), calcular a soma dos anos 2014, 2015 e 2016 (até o momento) por operadora e a soma e a média por período.<br/>
 +
 
 +
- Tipos de códigos: Sequenciais, Condicionais e Iterativos;<br/>
  
Colocar opção de entrada de dados com ''input'' e condição que não existe unidade negativa.<br/>
 
  
- Laços ''for''. <br/>
 
  
 
{{collapse bottom}}
 
{{collapse bottom}}
Linha 779: Linha 794:
  
 
{{collapse bottom}}
 
{{collapse bottom}}
<!--
+
 
 
-->
 
-->

Edição das 19h01min de 22 de março de 2017

Informações Básicas

Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega

Início: 06/Mar/2017
Término: 15/Mai/2017
Horário: Segundas e quartas, das 19h às 22h

Referência Básica: PALM, William J. Introdução ao MATLAB para engenheiros. Tradução de Tales Argolo Jesus. 3. ed. Porto Alegre: AMGH, 2013. xiv, 562, il. ISBN 9788580552041
Referência Complementar: MORAIS, V.. VIEIRA, C. MATLAB Curso Completo. FCA, 2013. 644. ISBN 9727227058

Conteúdos Abordados

Aula 1

06/Mar - Apresentação da disciplina, professores e alunos; Interface do MATLAB e operadores; Utilização básica (comandos help, clear, …);
  • Janela de comandos;
  • Inserindo comandos na Command Window;
  • Utilização do ponto e vírgula (;) para não aparecer na Command Window;
  • Variável ans;
  • Operadores:
Símbolo Operação Forma no Matlab
^ Exponenciação: a^b
* Multiplicação: a*b
/ Divisão à direita: a/b
\ Divisão à esquerda: a\b
+ Adição: a+b
- Subtração: a-b


  • Lista de Exercícios:

FIC Matlab 2016-2 Lista1.jpeg

  • Exemplos de help e lookfor;
  • Usando o arquivo .m (m file);
  • Limpeza:
  • Comando clear all para apagar todas variáveis;
  • Comando clc para apagar texto na Command Window;
  • Variáveis e constantes especiais:
Comandos Descrições
ans Variável temporária que contém a resposta mais recente.
eps Verifica a acurácia da precisão do ponto flutuante.
1i,1j A unidade imaginária .
Inf Infinito.
NaN Indica um resultado numérico indefinido.
pi O número .

Aula 2

08/Mar - Formatos de exibição; Definições de vetores e matrizes; Funções matemáticas; Plots
  • Formatos de exibição
Comando Descrição e exemplo
format short Quatro dígitos decimais (padrão); 13.6745
format long 16 dígitos; 17.27484029463547
format short e Cinco dígitos (quatro decimais) mais o expoente; 6.3792e+03
format long e 16 dígitos (15 decimais) mais o expoente; 6.379243784781294e-04
format bank Dois dígitos decimais; 126.73
format + Positivo, negativo ou zero; +
format rat Aproximação racional; 43/7
format compact Suprime algumas linhas em branco
format loose Restabelece o modo de exibição menos compacto
  • Vetores e matrizes
  • Definições de vetores
  • Definições de matrizes
  • Comando length e size
  • Arranjo de vetor utilizando dois pontos (:)
  • Definição de passo
  • Criação de vetor igualmente espaçamento: linear (linspace) e logarítmico (logspace)
  • Definições de matrizes eye, zeros e ones
  • Usando length e size na criação de matrizes
  • Transposição de vetor ou matriz com o apóstrofo ( .' )
  • Operações
  • Soma e diferença de matrizes
  • Produto matricial
  • Produto e divisão elemento a elemento de matrizes
  • Potenciação
  • Comandos sum e prod
  • Norma (norm), máximo (max) e mínimo (min)
  • Cálculo de determinante (det) e inversa (inv) de uma matriz
Matlab EX1.jpg
Matlab EX2.jpg
Matlab EX4.jpg
Matlab EX5.jpg


  • Funções Matemáticas
Função Sintaxe no Matlab
exp(x)
sqrt(x)
ln x log(x)
log10(x)
log2(x)
cos x cos(x)
sen x sin(x)
tan x tan(x)
cos-1x acos(x)
sen-1x asin(x)
tan-1x atan(x)

utilizando d após as funções sin, cos e tan e suas inversas, faz o cálculo em graus

  • Plots:
  • Comandos plot, stem e bar de uma função
  • Comando hold on para manter a curva no gráfico
  • Comando grid on para mostrar linhas em forma de grade
  • Nomes aos eixos com xlabel e ylabel
  • Comando title
  • Tipos de axis: Escala automática, equal, square e definido manualmente

Aula 3

13/Mar - Plots; Indexação de vetores e matrizes
  • Revisão plots:
  • Comandos plot, stem e bar de uma função
  • Comando hold on para manter a curva no gráfico
  • Comando grid on para mostrar linhas em forma de grade
  • Nomes aos eixos com xlabel e ylabel
  • Comando title
  • Tipos de axis: Escala automática, equal, square e definido manualmente
  • Outros comandos relacionados a plotagem:
  • Comando figure
  • Comando subplot
  • Comando legend
  • Comando close all para fechar todas figuras
  • Comando fplot e comparação com plot
  • Especificadores de linha, cores e marcadores:
Tipo de linha Símbolo
Sólida (padrão) -
Tracejada --
Tracejada com pontos -.
Com pontos :
Cores Símbolo
Preto k
Azul b
Ciano c
Verde g
Magenta m
Vermelho r
Branco w
Amarelo y
Marcadores de dados Símbolo
Ponto .
Asterisco *
Cruz x
Círculo o
Adição +
Quadrado s
Losango d
Triângulo apontando pra cima ^
Triângulo apontando pra baixo v
Triângulo apontando pra direita >
Triângulo apontando pra esquerda <
Estrela de 5 pontas p
Estrela de 6 pontas h
  • Exercícios
  • Faça o plot de cada uma das funções matemáticas vistas na aula passada. Use cores, hold on, subplots, etc.
  • Exercício: Plotar a função de -4 até 4 e encontrar as raízes por Bhaskara.
  • Resolver os exercícios abaixo
Matlab EX6.jpg
Matlab EX7.jpg
  • Exercício (livro - T5.1-2 p. 224): Utilize o comando fplot para investigar a função para . Quantos valores de aproximadamente são necessários para que seja obtida a mesma plotagem utilizando-se o comando plot?
  • Exercício: Fazer o plot de um sinal de tensão x tempo, como da figura abaixo:
  • de até → função seno:
  • de até → 0
  • de até → 1
  • de até → -1
Não esquecer de nomear os eixos.
Exercícios Aula 3 FIC Matlab.jpg
  • Endereçamento de vetores e matrizes
  • Indexação de um elemento
  • Índice
  • Subscrito
  • Submatrizes
  • Índice
  • Subscrito
  • Indexação/submatrizes do lado esquerdo vs do lado direito
  • Palavra-chave end
  • Exclusão de linha ou coluna
  • Exercícios
  • Resolver os exercícios abaixo
Matlab EX2a.jpg
Matlab EX8.jpg
Matlab EX9.jpg

Aula 4

15/Mar - Aula de exercícios

Aula dedicada à execução dos exercícios das aulas anteriores.

Código de série de Fourier de uma onda quadrada

Aula 5

20/Mar - Endereçamento lógico; Concatenação de matrizes; Entrada/Saída de dados; Polinômios; Estruturas; Células
  • Endereçamento de vetores e matrizes
  • Lógico
  • Concatenação de vetores e matrizes
  • Comandos sort e find
  • Comandos mean, ceil, floor e round
  • Exercício (livro - 16 p. 101): A tabela a seguir mostra o salário por hora, as horas de trabalho e a produção (número de dispositivos produzidos) em uma semana para cinco fabricantes de dispositivos.


Trabalhador 1 Trabalhador 2 Trabalhador 3 Trabalhador 4 Trabalhador 5
Salário por hora ($) 5,00 5,50 6,50 6,00 6,25
Horas de trabalho (h) 40 43 37 50 45
Produção (dispositivos) 1000 1100 1000 1200 1100


Utilize o MATLAB para responder essas questões:
a) Quanto cada trabalhador lucrou na semana?
b) Qual foi o salário total pago?
c) Quantos dispositivos foram fabricados?
d) Qual é o custo médio para se produzir um dispositivo?
e) Quantas horas são necessárias, em média, para se produzir um dispositivo?
f) Assumindo que a produção de cada trabalhador tenha a mesma qualidade, qual trabalhador é o mais eficiente? Qual é o menos eficiente?


  • Produto escalar (dot) e produto vetorial (cross) de dois vetores
  • Exercício: Calcule o produto vetorial e escalar dos vetores:
  • Polinômios
  • Representação de polinômios a partir de vetores
  • Comandos polyval, poly e roots
  • Multiplicação de polinômios (conv)
  • Divisão de polinômios (deconv), com ou ser resto
  • Comandos polyder e polyint
  • Exemplo: Livro página 88
  • Resolver os exercícios abaixo
Matlab poly EX1.jpg
Matlab poly EX2.jpg
Matlab poly EX3.jpg
Matlab poly EX4.jpg
Matlab poly EX5.jpg

Aula 6

30/Ago - Texto; Entrada e saída; Estruturas; Células; Operadores; Scripts; Controle de fluxo de dados
  • Trabalhando com texto
  • Entrada/Saída de dados e Texto
  • Comando input para entrada de dados
  • Comando disp e num2str
  • Exercício: Criar uma calculadora de IMC com perguntas (input) para massa e altura, aparecendo na sequência o resultado
  • Arranjo de células: texto e números
  • Comando celldisp e cellplot
Exercícios 1 Aula 5 FIC Matlab.jpeg
  • Estruturas
  • Criando estruturas com o operador "."
  • Criando estruturas com o comando struct
  • Comando isfield para identificar se um campo existe ou não
  • Comando rmfield para remover campo da estrutura
Matlab Struct1.jpg
Matlab Struct2.jpg
  • Operadores:
  • Operadores relacionais:
Operador relacional Significado
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a
== Igual a
~= Não é igual a
  • Operadores lógicos:
Operador Nome
&& E
OU
  • Uso de scripts (arquivo ".m")
  • Controle de fluxo de dados:
  • As sentenças if, else e elseif
  • Exercício: Criar um código que calcula o valor total da compra de algumas unidades de arroz (5kg), feijão (1kg) e café (500g)
  • Condições:
  1. O preço unitário do arroz é R$15,00. Se comprar 3 o preço cai para R$14,00 cada
  2. O preço unitário do feijão é R$12,00. Se comprar 4 o preço cai para R$11,50 cada
  3. O preço unitário do café é R$10,00. Se comprar 3 o preço cai para R$9,25 cada
  • Colocar opção de entrada de dados com input e condição que não existe unidade negativa
  • Estruturas de repetição:
  • Laços for
  • Laços while
  • Função definida pelo usuário no arquivo .m