1 / 67

Matlab

Matlab. Mini Curso PET 2012. Introdução. Software matlab – características gerais Apresentação da interface Variáveis, funções e comandos básicos Linguagem de programação Matlab. Interface - Current Folder. Mostra todos os arquivos atuais na pasta Matlab ;.

Download Presentation

Matlab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matlab Mini Curso PET 2012

  2. Introdução • Software matlab – características gerais • Apresentação da interface • Variáveis, funções e comandos básicos • Linguagem de programação Matlab

  3. Interface - Current Folder • Mostra todos os arquivos atuais na pasta Matlab;

  4. Interface - CommandHistory • Mostra o histórico de todos os comandos realizados na commandwindow

  5. Interface - Workspace • Mostra todas as variáveis criadas e seus respectivos tipos

  6. Interface - CommandWindow • Terminal e janela de realização de comandos individualmente

  7. Interface - Editor • Janela de criação de programas e funções Matlab

  8. Variáveis, funções e comandos básico • Variáveis sempre definidas como matrizes de dimensão N

  9. Variáveis, funções ecomandos básicos • Sem necessidade de especificar tipo de variável • Variável recebe tipo de acordo com valor recebido: • valor numérico – Double (padrão) • ‘texto’ - char • true, false, comparação - logical • @função – function_handle

  10. Variáveis, funções ecomandos básicos • Mudar exibição das variáveis numéricas: • File -> Preferences -> CommandWindow-> NumericFormat

  11. Variáveis, funções ecomandos básicos - funções Funções são utilizadas da mesma forma que em C#, C++, Java: • Função com retorno: x = função(parâmetros); Ex: x = cos(3.14)  x = -1 • Principais funções matemáticas: sin, cos, tan, sind, cosd, tand, asin, acos, atan, log, log2, log10, sqrt, int, diff,

  12. Variáveis, funções ecomandos básicos • Criar um programa para criar duas variáveis numéricas (a=4 e b=5), uma outra que recebe a raiz da soma delas (c=sqrt(a+b)) e a seguir, imprimir o resultado no terminal (commandwindow): a = 4; b = 5; c = sqrt(a+b); display(c);

  13. Variáveis, funções ecomandos básicos - logical • Variáveis lógicas -> a = true, a = false, a = comparação • Ex: b = 3; c = 4; a = (b<c); display(a); //a = 1; a = ~a display(a); //a = 0;

  14. Variáveis, funções ecomandos básicos - logical

  15. Variáveis, funções ecomandos básicos - logical

  16. Variáveis, funções ecomandos básicos - complexos • Unidade imaginária: “i” ou “j” • Ex: a = 3 + 4*i a = 3.0000 + 4.0000i • Comandos: imag(a) = 4 real(a) = 3 abs(a) = 5 angle(a) = 0.9273

  17. Variáveis, funções ecomandos básicos – i/o • Funções de saída de dados no terminal: • display(x) – exibe o nome da variável e seu conteúdo. • display(‘Texto’) – exibe o texto inserido. • fprintf(‘Texto’) – exibe o texto inserido • Funciona da mesma forma que a função ‘printf’ da linguagem C# • Permite exibir texto e variáveis simultaneamente.

  18. Variáveis, funções ecomandos básicos - fprintf • '' Singlequotationmark • %% Percentcharacter • \\ Backslash • \a Alarm • \b Backspace • \f Formfeed • \n Newline • \r Carriagereturn • \t Horizontal tab • \v Vertical tab

  19. Variáveis, funções ecomandos básicos – i/o • Função de entrada de dados: input • x = input(‘Texto de orientação: ‘); • x receberá um valor numérico ou uma expressão digitada pelo usuário. Ex: 23.124; 34+4*23; a+b^c+3 (a, b, c = variáveis já declaradas no programa) • x = input(‘Texto de orientação: ‘, ‘s’);  x receberá a entrada do usuário como uma string.

  20. Variáveis, funções ecomandos básicos

  21. Matrizes e Programação • Declaração de vetores e matrizes • Manipulação • Funções

  22. Matrizes e Programação - Declaração • Matriz declarada da mesma forma que variáveis, com valores colocados entre colchetes [] • Valores na coluna seguinte são separados por (,) • Valores na linha seguinte são separados por (;) Ex: a = [1, 2, 3; 4, 5, 6; 7, 8, 9] a = 1 2 3 4 5 6 7 8 9

  23. Matrizes e Programação - Declaração • Ferramenta ‘:’ Ex: a = 1:5  a = 1 2 3 4 5 a = 0:0.1:1  a = 0.1 0.2 0.3 (...) 0.8 0.9 1 a = [1:3 ; 4:6; 7:9]  a = 1 2 3 4 5 6 7 8 9

  24. Matrizes e Programação - Declaração • Exercício: Construir uma matriz 3x5, em que a lei de formação da primeira linha é seno, a segunda é cosseno e a terceira é raiz quadrada. Utilize para cada linha o vetor v = 0:0.25:1 • a = 0 0.2474 0.4794 0.6816 0.8415 1.0000 0.9689 0.8776 0.7317 0.5403 0 0.5000 0.7071 0.8660 1.0000

  25. Matrizes e Programação - Manipulação • Acessando elemento: • x(linha,coluna) = an • Acessando linha: • x(linha, :) = [a1, a2, a3, ... , an] • Acessando coluna:  x(: , coluna) = [a1; a2; a3; ... ; an] • Apagando linha ou coluna: • x(linha, :) = [ ] • x(coluna,:) = [ ]

  26. Matrizes e Programação - Manipulação Exercício: Criar um programa que calcule a distância entre dois pontos. P1 = (1,5), P2 = (4,9) R: d = sqrt(sum(P1-P2)); d = 5

  27. Matrizes e Programação - Manipulação • Indexação de elementos:

  28. Matrizes e Programação - Manipulação • Exercício: Resolver o seguinte sistema linear: x + 10y – 12z = 120 4x – 2y – 20z = 60 -x + y + 5z = 10 Matriz inversa: inv(A) Escalonamento: rref(A) Determinante: det(A) Resp: x = 340; y = 50; z = 60

  29. Matrizes e Programação - Manipulação • Resolver o sistema: 5j*x + (2-6j)*y + 7*z = log5(20) 9*x – pi*y + sqrt(2)*z = 10.569 (1/3)*x + sen(30)*y + atan(2)*z = 21.3

  30. Matrizes – funções úteis

  31. Matrizes – funções úteis

  32. Matrizes – funções úteis

  33. Matrizes multidimensionais

  34. Matrizes multidimensionais Exercício: Uma empresa apresenta as seguintes tabelas de Produção x Hora x Mês. Salve-as em uma única variável. A = [30, 15; 20, 36]; A(:,:,2) = [12, 17; 9, 15]; A(:,:,3) = [21, 41; 45, 39];

  35. Matrizes de caracteres • Strings declaradas com aspas simples: • nome = ‘Joao’; • sobrenome = ‘da Silva’; • Juntar ambas strings numa matriz: • horizontalmente: (matriz 1x12) completo = [nome, sobrenome]; completo = strcat(nome, sobrenome);  verticalmente: (matriz 2x8) completo = strvcat(nome, sobrenome);

  36. Programação MATLAB Arquivos *.m Podem ser tanto Scripts quanto Functions: • Script – arquivo contendo simplesmente uma sequência de comandos do MATLAB. Utiliza e cria variáveis do workspace • Function – faz uso de suas próprias variáveis locais, recebem parâmetros externos e retornam valores.

  37. Programação MATLABEstruturas de decisão - if • Executa teste lógico com expressão. Se resultado = 1 (true) : executa comandos Se resultado = 0 (false) : pula para próxima expressão • Forma geral: if (expressão1) comandos1; elseif (expressão2) comandos2; else comandos 3; end

  38. Programação MATLABEstruturas de decisão - if if (a == 0) display('zero'); elseif (a >= b) display('maior'); display(a); elseif (L) fprintf('Valor de a: %f, valor de b = %f\n', a, b); c = a+b; display(c); else c = a+b+4; display(c); end

  39. Programação MATLABEstruturas de decisão - if • Exercício: Fazer um programa que receba do usuário um número e em seguida diga se o número é par ou ímpar. Caso não seja um número inteiro, imprima mensagem de erro.

  40. Programação MATLABEstruturas de decisão - for • Realiza um certo conjunto de comandos numa pré-determinada quantidade de vezes. • Forma geral: for x = valor comandos; end

  41. Programação MATLABEstruturas de decisão - for • valor : pode ser vetor ou matriz numéricos • x = vetor: a cada iteração, x receberá o valor de cada elemento do vetor. Ciclo termina ao chegar no último elemento. • x = matriz: a cada iteração, x receberá um ‘vetor coluna’, com o valor de cada coluna da matriz. Ciclo termina ao chegar na última coluna.

  42. Programação MATLABEstruturas de decisão - for • Exemplos: for x = 0:0.1:1 soma = soma + x; end for k = eye(3) display(k); end

  43. Programação MATLABEstruturas de decisão - for Exercício: • Criar um programa que mostre todos os divisores de um número recebido do usuário. • Criar um programa que diga se o número digitado é primo ou não.

  44. Programação MATLABEstruturas de decisão - while • Repetidamente executa comandos até que o valor da expressão seja falso • Forma geral: while (expressão) comandos; end • expressão: • comparação: a<b, a>b, a==b, a~=b • Variável lógica pré-declarada: L = true Ps: Parar programa: ctrl+c

  45. Programação MATLABEstruturas de decisão - while • Exemplo: while (a<=b) a = a*2; b = b + 1; display(a); display(b); end

  46. Programação MATLABEstruturas de decisão - while • Exercício:Escreva um programa que calcule sucessivamente a raiz quadrada de números introduzidos pelo utilizador até que este indique um número igual a 1. Utilize a função sqrt(x) para calcular a raiz quadrada e input(‘x=?’) para ler os valores. Mostrar ao fim da execução o número de iterações.

  47. Programação MATLABEstruturas de decisão - fluxo • Ferramentas de mudança do fluxo: • break – encerra o loop while ou for Ex: for k=2:x-1 if (mod(x,k) == 0) break end end • continue – pula para a próxima iteração Ex: for k = 1:x if (mod(x,k) == 0) fprintf('%.0f, ', k); continue end fprintf('\n'); end

  48. Programação MATLABEstruturas de decisão - switch • Mecanismo de escolha entre várias opções, baseado em comparação de igualdade. • Executa o primeiro caso em que a comparação é satisfeita. Imediatamente após executar o caso escolhido, o switch é encerrado. • Caso nenhum dos casos satisfaça a condição, é executado o ‘otherwise’.

  49. Programação MATLABEstruturas de decisão - switch • Forma geral: switch variável_teste case ‘valor_1’ comandos_1; case ‘valor_2’ comandos_2; (...) otherwise comandos_n; end

  50. Programação MATLABEstruturas de decisão - switch • Exemplo: metodo = ‘Bilinear'; switch lower(metodo) case {'linear','bilinear'} display('Método é linear.'); case 'cubico' display('Método é cúbico.'); case 'mais proximo' display('Método é por mais próximo.'); otherwise display('Método desconhecido.'); end

More Related