FIC MATLAB 2017-2

De MediaWiki do Campus São José
Revisão de 14h54min de 15 de novembro de 2017 por Diegomedeiros (discussão | contribs) (→‎Aula 10)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Informações Básicas

Código: MLB16470
Professores: Diego da Silva de Medeiros e Roberto Wanderley da Nóbrega
Início: 05/Set/2017
Término: 21/Nov/2017
Horário: Terças e quintas, 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

05/Set - Apresentação da disciplina; Interface do MATLAB; Operadores; Funções; Constantes especiais
  • MATLAB e Octave;
  • Interface do MATLAB;
  • Command Window;
  • Workspace;
  • Comando whos;
  • Current Folder;
  • Command History;
  • Editor;
  • Utilização do ponto (.) no lugar de vírgula (,) para números decimais (1,33 -> 1.33);
  • Operadores:
Operação Notação matemática Sintaxe no MATLAB
Adição a+b
Subtração a-b
Multiplicação a*b
Divisão à direita a/b
Divisão à esquerda a\b
Exponenciação: a^b
  • Funções Matemáticas
Função Sintaxe no MATLAB
exp(x)
sqrt(x)
abs(x)
log(x)
log10(x)
log2(x)
cos(x)
sin(x)
tan(x)
acos(x)
asin(x)
atan(x)
(maior inteiro ) floor(x)
(menor inteiro ) ceil(x)
(arredondamento para o inteiro maior próximo) round(x)
(sinal de ) sign(x)

Observações:

  • Utilizando d após as funções sin, cos e tan e suas inversas, faz o cálculo em graus;
  • Utilizando h após as funções sin, cos e tan e suas inversas, tem-se suas versões hiperbólicas;


  • Exercício:
1. Supondo e , calcule:


  • Ajudas:
  • Comandos help, doc e lookfor;
  • Utilizando scripts (arquivo .m);
  • Limpeza:
  • Utilização do ponto e vírgula (;) para não aparecer na Command Window;
  • Comando clear para apagar 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.
pi O número .
1i,1j A unidade imaginária .
Inf Infinito.
NaN Indica um resultado numérico indefinido.

Aula 2

12/Set - Formatos de exibição; Vetores e matrizes
  • 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


  • Definições de vetores;
  • Definições de matrizes;
  • Comandos length e size;
  • Arranjo de vetores:
  • Utilizando dois pontos (:);
  • Definição de passo;
  • Comandos linspace e logspace;


  • Exercícios:
1. Crie os vetores descritos abaixo usando dois métodos diferentes:
a) Início: 5, Fim: 28, com 100 elementos regularmente espaçados
b) Início: 5, Fim: 14, com passo de 0,2.
c) Início: -2, Fim: 5, com 50 elementos regularmente espaçados
d) Início: 100, Fim: 12, com 100 elementos regularmente espaçados
2. Crie os vetores descritos abaixo:
a) Início: 10, Fim: 1000, com 50 elementos logaritmicamente espaçados
b) Início: 0,01, Fim: 1, com 20 elementos logaritmicamente espaçados
3. Crie um vetor x que tenha 6 valores entre 0 e 10. Em seguida, crie uma matriz A cuja primeira linha contenha os valores 3x e segunda linha contenha os valores 5x - 20.
4. Repita o exercício anterior, substituindo a palavra linha por coluna.


  • Definições de matrizes eye, zeros e ones;
  • Usando length e size na criação de matrizes;
  • Matriz transposta ( .' ) e matriz Hermitiana (');


Aula 3

14/Set - Operações com matrizes; Plots
  • Operações;
  • Soma e diferença;
  • Produto matricial;
  • Produto e divisão elemento a elemento;
  • Potenciação;
  • Funções (sin, log, etc) aplicadas a matrizes;
  • Operações entre matrizes e escalares;
  • Comandos sum e prod;
  • Mínimo (min), máximo (max), média (mean) e norma (norm);
  • Determinante (det) e inversa (inv) de uma matriz;


  • Exercícios:
1. Defina as matrizes abaixo:
2. Para as matrizes acima, realize as operações abaixo:
a) B + C
b) A D (multiplicação matricial)
c) C BT A
d) X = BT C
e) X2
f) B C (multiplicação elemento a elemento)


  • Plots:
  • Comandos plot, stem, bar e stairs de uma função
  • Uso de apenas um parâmetro
  • Comando hold para manter a curva no gráfico
  • Comando grid para mostrar linhas em forma de grade
  • Nomes aos eixos com xlabel e ylabel
  • Comando title
  • Comandos axis, xlim e ylim para ajuste de eixos
  • Comando legend
  • 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
1. Faça o plot de algumas das funções matemáticas vistas na aula 1. Use cores, hold on, etc
2. Plotar a função de -4 até 4 e encontrar as raízes por Bhaskara
3. Utilize o MATLAB para plotar a função ao longo do intervalo . Insira um título na plotagem e rotule adequadamente os eixos. A variável T representa a temperatura em graus Celsius; a variável t representa o tempo em minutos.
4. Plote as funções e ao longo do intervalo . Rotule adequadamente a plotagem e cada uma das curvas, utilizando legend. A variável u representa a velocidade de uma Ferrari em km/h. A variável v representa a velocidade de um Fusca.
5. Use a função stem para plotar os sinais abaixo na mesma figura:
, para
, para
6. A série de Fourier é uma representação em série de funções periódicas em termos de senos e cossenos. A representação em série de Fourier da função
é
.
Plote em um mesmo gráfico a função f(x) e sua representação em série g(x), utilizando os quatro termos explicitados.
7. Fazer o plot de um sinal de tensão versus tempo, como da figura:
Não esquecer de nomear os eixos.
Exercícios Aula 3 FIC Matlab.jpg


Aula 4

19/Set - Números aleatórios; Endereçamento de vetores e matrizes
  • Outros comandos relacionados a plotagem:
  • Comando figure
  • Comando subplot
  • Comando close all para fechar todas figuras
  • Números aleatórios
  • Comando randi para valores inteiros uniformemente distribuídos
  • Comando rand para valores uniformemente distribuídos
  • Comando randn para valores normalmente distribuídos
  • Comando hist e histogram para cálculo/visualização do histograma
  • Endereçamento de vetores e matrizes
  • Indexação de um elemento
  • Índice
  • Subscrito
  • Submatrizes
  • Índice
  • Subscrito
  • Palavra-chave end
  • Indexação/submatrizes do lado esquerdo vs do lado direito
  • Exclusão de linha ou coluna


  • Exercícios:
1. Crie uma matriz A de tamanho 15 x 15 de inteiros.
a) Extraia o elemento da segunda linha e quarta coluna de A, armazenando na variável u
b) Crie um vetor v formado pelos elementos da segunda coluna de A
c) Crie um vetor w formado pelos elementos da última linha de A
d) Crie uma matriz B formada pelos elementos da segunda até a décima coluna de A
e) Crie uma matriz C formada pelos elementos da quinta até a penúltima linha de A
f) Crie uma matriz D formada pelos elementos da sétima até a penúltima linha e das 3 últimas colunas de A
g) Crie uma matriz E formada pelas linhas pares e colunas múltiplas de 3 de A
h) Crie uma matriz F formada pelas linhas 1 a 7 e mais a 13 e pelas colunas 4, 5 e 1 de A
2. Assuma que a matriz C seja definida como abaixo e determine o conteúdo das seguintes submatrizes. Descubra a saída dos comandos antes de executá-los.
a) C(2, :)
b) C(:, end)
c) C(1:2, 2:end)
d) C(6)
e) C(4:end)
f) C(1:2, 2:4)
g) C([1 3], 2)
h) C([2 2], [3 3])
3. Determine a saída no command window após a execução dos comandos abaixo. Descubra a saída dos comandos antes de executá-los.
A = [1 2 3; 4 5 6; 7 8 9]
A([3 1], :) = A([1 3], :)
A([1 3], :) = A([2 2], :)
A = A(:, [2 2])
4. Determine o conteúdo da matriz A após a execução das seguintes declarações. Descubra a saída dos comandos antes de executá-los.
a) A = eye(3,3);
b = [1 2 3];
A(2, :) = b;
b) A = eye(3,3);
b = [4 5 6];
A(:, 3) = b';
c) A = eye(3,3);
b = [7 8 9];
A(3, :) = b([3 1 2]);


Aula 5

21/Set - Aula de exercícios
  • Exercícios:
1. 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 recebeu 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?
2. A aproximação de Bhaskara I para a função seno em graus é dada por:
Crie uma figura contendo 3 plots:
  • A função seno original
  • A aproximação de Bhaskara I
  • O erro da aproximação
3. Se uma bola estacionária é lançada da altura acima da superfície da terra, com velocidade vertical , a posição e a velocidade da bola como função no tempo serão dadas pelas equações
onde g é a aceleração da gravidade (-9,81 m/s²). Escreva um programa de MATLAB que desenhe a altura e a velocidade como função do tempo. Faça com que e sejam parâmetros da script. Não deixe de incluir as legendas apropriadas.
4. Joãozinho depositou num fundo de investimento com taxa de juros ao mês. Faça um gráfico do saldo do investimento. Em quanto tempo o valor depositado será dobrado? Dica: (link)
  • Desafio:
1. Plote um círculo com raio 2 e centrado no ponto (4,3). Dica: use equações paramétricas.
2. Repita o Exercício 6 da Aula 3 (Fourier) para um número de termos genérico.
3. Plote o símbolo do Batman (para quem tem dúvida, link).

Aula 6

26/Set - Concatenação de matrizes; Polinômios; Conjuntos; Texto; Entrada e saída de dados
  • Concatenação de vetores e matrizes
  • Comandos repmat e reshape


  • Comandos sort, unique
  • Comandos union (), intersect (), setdiff (), setxor (diferença simétrica)


  • Exercícios:
1. Mostre todos os inteiros positivos múltiplos de 3 ou 5 menores que 100
2. Mostre todos os inteiros positivos múltiplos de 3 e 5 menores que 200
3. Mostre todos os inteiros positivos múltiplos de 3 ou 5 mas não de ambos menores que 125


  • Polinômios
  • Representação de polinômios a partir de vetores
  • Comandos polyval, poly e roots
  • Comandos conv e deconv para multiplicação e divisão de polinômios
  • Comandos polyder e polyint para derivada e integral de polinômios


  • Exercícios:
Matlab poly EX1.jpg
Matlab poly EX2.jpg
Matlab poly EX3.jpg
Matlab poly EX4.jpg
Matlab poly EX5.jpg


  • Trabalhando com texto (string)


  • Entrada/Saída de dados
  • Comando input para entrada de dados
  • Comando disp para saída de dados
  • Comandos num2str e str2num
  • Entrada de dados sem a tecla ENTER


  • Exercício:
1. Criar uma calculadora de IMC com perguntas (input) para massa e altura. Use o disp para exibir o resultado de forma agradável ao usuário.


Aula 7

28/Set - Variáveis lógicas; Operadores; Controle de fluxo de dados - if
  • Variáveis lógicas:
  • Comando logical
  • Endereçamento lógico de vetores e matrizes


  • Operadores:
  • Operadores relacionais:
Operador Significado
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a
== Igual a
~= Não é igual a
  • Operadores lógicos (vetores):
Operador Nome
& AND
ǀ OR
~ NOT
xor(a,b) XOR
  • Operadores lógicos curto-circuito:
Operador Nome
&& AND
ǀǀ OR
  • Comparação de strings:
  • Comandos strcmp e strcmpi


  • Comando find


  • Exercícios:
1. Sejam x = [1 7 5 3 8 2] e y = [1 8 2 3 9 1]. Encontre os resultados dos seguintes comandos antes de executá-los:
a) z = x < 6
b) z = x <= y
c) z = x == y
d) z = x ~= y
2. A tabela abaixo mostra as temperaturas diárias (em Celsius) em três cidades diferentes.
Cidade \ Temperatura Dia 1 Dia 2 Dia 3 Dia 4 Dia 5 Dia 6 Dia 7
Palhoça 10 13 6 5 -1 10 4
São José 19 13 3 5 1 22 14
Biguaçu 30 2 3 -1 10 -2 40
Determine em quais dias:
a) A temperatura na Palhoça é maior que 8 °C.
b) A temperatura em São José se encontra entre 1 °C e 15 °C (incluindo ambos os extremos).
c) Fez mais frio na Palhoça que em São José.
d) Biguaçu foi a cidade mais quente de todas.
3. A altura e a velocidade de um projétil lançado com uma velocidade e um ângulo com a horizontal são dadas, em funcão do tempo t, por
respectivamente, em que g é a aceleração da gravidade. O projétil atinge o solo quando , o que ocorre no tempo . Suponha que °, m/s e m/s².
a) Plote os gráficos da altura e da velocidade do projétil, de até .
b) Determine os instantes de tempo em que a altura é de no mínimo 15 m.
c) Determine os instantes de tempo em que a altura é de no mínimo 15 m e, ao mesmo tempo, a velocidade é de no máximo 36 m/s.
c) Determine os instantes de tempo em que a altura é de no mínimo 15 m ou a velocidade é de no máximo 36 m/s.


  • Controle de fluxo de dados:
  • As sentenças if, else e elseif


  • Exercícios:
1. Crie um código que calcula o valor gasto total (em R$) e o peso total (em kg) da compra de algumas unidades de arroz (5 kg), feijão (1 kg) e café (500 g).
  • O usuário deve fornecer quantas unidades quer comprar de cada produto (comando input).
  • Os dados devem ser validados: verificar se o usuário forneceu alguma quantidade negativa.
  • Condições de compra:
  1. O preço unitário do arroz é R$15,00. Se comprar 3 ou mais, o preço cai para R$14,00 cada.
  2. O preço unitário do feijão é R$12,00. Se comprar 4 ou mais, o preço cai para R$11,50 cada.
  3. O preço unitário do café é R$10,00. Se comprar 3 ou mais, o preço cai para R$9,25 cada.
2. Implemente uma calculadora com as quatro operações básicas, recebendo a escolha de operação e números com o comando input. Não se esqueça de implementar proteções para as entradas de dados (divisão por zero, vetores, etc).


Aula 8

03/Out - Controle de fluxo de dados - switch; Structs; Cells
  • A sentença switch
  • Um único valor
  • Múltiplos valores


  • Exercício:
1. Reescreva o código da calculadora da aula anterior fazendo o uso da sentença switch


  • 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


  • Exercícios:
1. Crie um arranjo de estruturas que contenha os os seguintes campos de informação concernentes a pontes rodoviárias em uma cidade: localização da ponte, carga máxima (toneladas), ano de construção, ano agendado para a manutenção.
a) Insira os dados abaixo na estrutura:
Localização Carga máxima Ano de construção Agendamento para a manutenção
Smith St. 80 1928 2011
Hope Ave. 90 1950 2013
Clark St. 85 1933 2012
North Rd. 100 1960 2012
b) Edite o arranjo de estruturas para mudar de 2012 para 2018 o ano agendado para a manutenção da ponte Clark St.
c) Adicione a seguinte ponte ao arranjo de estruturas:


Localização Carga máxima Ano de construção Agendamento para a manutenção
Shore Rd. 85 1997 2014
2. Crie uma estrutura que contenha todas as informações necessárias para construir um diagrama de um conjunto de dados. No mínimo, a estrutura deve conter os seguintes campos:
  • x_data: dado referente ao eixo "x"
  • y_data: dado referente ao eixo "y"
  • title: título do diagrama
  • x_label: rótulo do eixo "x"
  • y_label: rótulo do eixo "y"
  • x_range: faixa de valores exibidos no eixo "x"
  • y_range: faixa de valores exibidos no eixo "y"
Você pode adicionar outros campos que aumentem seu controle sobre o diagrama final.
Depois de criar essa estrutura, escreva um programa no MATLAB que use a estrutura para gerar um gráfico. O programa deve aplicar características iniciais inteligentes se alguns campos de dados estiverem faltando.


  • Arranjo de células: texto e números
  • Comando celldisp e cellplot


  • Exercícios:
1. Repita os exercícios anteriores de estruturas usando células


Aula 9

05/Out - Estruturas de repetição - for e while
  • Estruturas de repetição:
  • Laços for
  • Laços while
  • Sentenças break e continue


  • Exercícios:
1. Acrescente à calculadora a possibilidade de continuar realizando cálculos até que o usuário solicite a saída digitando 's'.
2. Escreva um programa que calcule o fatorial de um número, utilizando for e while.
3. Escreva um programa que calcule os n primeiros termos da sequência de Fibonacci, dispondo-os num vetor.
4. Considere os códigos abaixo:
Símbolo A B C D E F
Código 1 000 001 010 011 100 101
Código 2 00 10 11 010 0110 0111
a) Escreva um programa que codifique uma sequência de símbolos, gerando a sequência de bits correspondente. Seu programa deverá funcionar tanto para o código 1 quanto para o código 2. Teste seu programa com a seguinte string: F A D A B A B A C A.
b) Escreva um programa que decodifique uma string recuperando a sequência de símbolos original. Teste seu programa com a seguinte sequência de bits:
Código 1: 001000001000101100011100
Código 2: 10001000011101100100110
c) Junte os dois códigos anteriores num único programa, onde o usuário seleciona a operação (codificação ou decodificação), o código (1 ou 2), e entra com o dado a ser operado.
5. Escreva um programa que implementa o jogo Genius®. O programa deverá gerar uma sequência aleatória de letras e/ou números e exibir um por um na tela, limpando-a em seguida. Após isso, aguardará o usuário entrar com a sequência.
6. A série de Fourier é uma representação em série de funções periódicas em termos de senos e cossenos. A representação em série de Fourier da função
é
.
Plote em um mesmo gráfico a função f(x) e sua representação em série g(x), utilizando um número de termos definido pelo usuário.

Aula 10

10/Out - Funções; Importação de dados; Solução de sistemas de equações
  • Funções definidas pelo usuário
  • Único retorno
  • Múltiplos retornos
  • Comando return


  • Exercícios:
1. Adapte os Exercícios 2 e 3 da Aula 9 de modo a utilizar funções.
2. Escreva uma função que retorna a média aritmética e a média geométrica de dois dados números.
3. Escreva uma função que determina o tempo (em anos) necessário para que você acumule pelo menos VF (em dólares) em uma conta bancária se você depositar inicialmente V0 (em dólares) e mais P (em dólares) ao final de cada ano, com um rendimento anual de R%.
4. Fazer o plot de um sinal de tensão versus tempo, como da figura, usando os conceitos da aula de hoje.
Não esquecer de nomear os eixos.
Exercícios Aula 3 FIC Matlab.jpg
5. Escreva uma função que implementa a Cifra de César. A entrada da função deve ser:
  • O string a ser codificado/decodificado;
  • O deslocamento a ser aplicado em cada letra do string, podendo ser um inteiro positivo (deslocamento para a direita) ou negativo (deslocamento para a esquerda).
6. Escreva uma função que retorna todos os números primos menores ou iguais a um dado inteiro n. Utilize o algoritmo do Crivo de Erastótenes.


  • Importação de dados
  • Comando uiimport
  • Formato do separador decimal (. ou ,)
Exemplo: usar Celular4g‎.txt, importar e trabalhar com as funções de matrizes.


  • Exercícios:
1. Com o arquivo 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.


  • Sistemas de equações lineares
  • Encontrando a solução de Ax = b com A\b


MATLAB Chem Balance.jpg


Aula 11

17/Out - Processamento de imagens

Pro futuro: Usar im2double!


Curso Matlab aplicado ao processamento de imagens - Aula 3


Códigos executados em sala

Aula 12

19/Out - Gráficos em 2D e 3D
  • Gráficos em 2D
  • Revisão: Comandos plot, stem, bars e stairs
  • Comandos semilogx, semilogy e loglog
  • Comando polar
, onde k é um parâmetro.
  • Números complexos e funções abs e angle
  • Comando plotyy para plotar gráficos com dois eixos em y.
  • Letras gregas nos gráficos:
Letra Representação
\alpha
\beta
\gamma
\delta
\epsilon
\kappa
\lambda
\mu
\nu
\omega
\phi
\pi
\chi
\psi
\rho
\sigma
\tau
\upsilon
\Sigma
\Pi
\Lambda
\Omega
\Gamma


  • Exercícios:
1. Plote em vermelho a função polar
, de .
2. Plote o gráfico da função utilizando todos os quatro tipos de combinações de eixos (linear/logarítmico).
3. As seguintes funções descrevem as oscilações em circuitos elétricos e as vibrações de máquinas e estruturas. Sobreponha as plotagens dessas funções no mesmo eixo. Como elas são similares, defina qual é a melhor forma de plotá-las e de rotulá-las para evitar confusão.


  • Gráficos em 3D
  • Gráficos de linha em 3D
  • Comando plot3
  • Comando view
  • Rótulo no eixo z: zlabel
  • Gráficos de superfície
  • Comando meshgrid para criar uma malha 3D
  • Comando surf para plot de função de f(x,y)
  • Comando shading, com parâmetros flat, faceted e interp
  • Comando alternativo mesh
  • Exemplo: Símbolo da Itapema FM incompleto:
[X,Y] = meshgrid(-20:0.5:20);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(X,Y,Z)
  • Curva de níveis:
  • Comandos contour, surfc e meshc


Arquivo:FIC Matlab Exercicios plot.pdf

Aula 13

24/Out - Toolbox simbólico

Básico

  • Comandos syms e sym
  • Comandos pretty e latex
  • Comando subs
  • Valores via argumento da função
  • Valores retirados do workspace
  • Comandos factor, expand, collect e simplify

Cálculo

  • Comando limit: Limites
  • Comando diff: Derivada primeira, segunda, terceira, etc.
Comando int: Integrais indefinidas e definidas
  • Interlúdio: comandos assume e assumptions
  • Comando taylor: Séries de Taylor
  • Comando symsum: Somatórios / séries
  • Outros: dsolve, fourier, laplace, partfrac

Solução de equações

  • Comando solve


Códigos executados em sala

Aula 14

26/Out - Interface gráfica

Aula

Proposta de Interface gráfica

function varargout = Interface(varargin) % INTERFACE MATLAB code for Interface.fig % INTERFACE, by itself, creates a new INTERFACE or raises the existing % singleton*. % % H = INTERFACE returns the handle to a new INTERFACE or the handle to % the existing singleton*. % % INTERFACE('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in INTERFACE.M with the given input arguments. % % INTERFACE('Property','Value',...) creates a new INTERFACE or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Interface_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Interface_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Interface

% Last Modified by GUIDE v2.5 19-Apr-2017 19:45:52

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ...

                  'gui_Singleton',  gui_Singleton, ...
                  'gui_OpeningFcn', @Interface_OpeningFcn, ...
                  'gui_OutputFcn',  @Interface_OutputFcn, ...
                  'gui_LayoutFcn',  [] , ...
                  'gui_Callback',   []);

if nargin && ischar(varargin{1})

   gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

   [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

   gui_mainfcn(gui_State, varargin{:});

end % End initialization code - DO NOT EDIT

% --- Executes just before Interface is made visible. function Interface_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Interface (see VARARGIN)

handles.contador = 0; display(handles.contador) assignin('base','handles',handles)

% Choose default command line output for Interface handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes Interface wait for user response (see UIRESUME) % uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line. function varargout = Interface_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout{1} = handles.output;


% --- Executes on button press in btnDesenhar. function btnDesenhar_Callback(hObject, eventdata, handles) % hObject handle to btnDesenhar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

%Incrementa o contador handles.contador = handles.contador + 1; display(handles.contador) %handles

%Axis 1 hold(handles.axes1,'off')

amostras = [0:1:1000]; if not(isempty(str2num(get(handles.edtFrequencias,'String'))))

   Freq = str2num(get(handles.edtFrequencias,'String'))
   onda = 2*pi*Freq*0.001*amostras;
   plot(handles.axes1,sin(onda))
   grid(handles.axes1,'on')
   assignin('base','contador',handles.contador);
   assignin('base','hObject',hObject)
   % Update handles structure
   guidata(hObject, handles);
   if (get(handles.rbtCosseno,'Value') == 1)
       %Axis 2
       plot(handles.axes2,cos(onda))
       grid(handles.axes2,'on')
   elseif (get(handles.rbtTangente,'Value') == 1)
       %Axis 2
       plot(handles.axes2,tan(onda))
       grid(handles.axes2,'on')
       ylim(handles.axes2,[-2,2])
   else
       errordlg('Selecione uma onda de saída!')
   end

end % --- Executes on button press in rbtCosseno. function rbtCosseno_Callback(hObject, eventdata, handles) % hObject handle to rbtCosseno (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of rbtCosseno set(hObject,'Value',1) set(handles.rbtTangente,'Value',0)


% --- Executes on button press in rbtTangente. function rbtTangente_Callback(hObject, eventdata, handles) % hObject handle to rbtTangente (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of rbtTangente set(hObject,'Value',1) set(handles.rbtCosseno,'Value',0)


function edtFrequencias_Callback(hObject, eventdata, handles) % hObject handle to edtFrequencias (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edtFrequencias as text % str2double(get(hObject,'String')) returns contents of edtFrequencias as a double


% --- Executes during object creation, after setting all properties. function edtFrequencias_CreateFcn(hObject, eventdata, handles) % hObject handle to edtFrequencias (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

   set(hObject,'BackgroundColor','white');

end </syntaxhighlight>

Aula 15

31/Out - Projeto

Aula dedicada ao projeto.

Aula 16

07/Nov - Projeto

Aula dedicada ao projeto.

Aula 17

09/Nov - Projeto

Aula dedicada ao projeto.


Próximos episódios

Questões da turma

Projetos finais

Ideias

Hachuras em gráficos de barras

Implementar uma função em MATLAB que plote um gráfico de barras com hachuras. O comportamento deve ser semelhante ao comando bar, nativo do MATLAB, mas parâmetros poderão ser acrescentados para controle da trama. Um exemplo de resultado pode ser visto na figura abaixo:

MATLAB-hachuras.png

Genius®

Implementar uma versão avançada do jogo Genius® construído na aula 9, adicionando sons, elementos gráficos, etc.

Outros

relógio analógico
dtmf
sudoku
jogo da velha
contar moedas
esteganografia
batalha naval