Computação Científica com MATLAB. Melissa Weber Mendonça



Documentos relacionados
MATLAB Avançado. Melissa Weber Mendonça

Noções de algoritmos - Aula 1

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

Informática para Ciências e Engenharias 2013/14. Teórica 7

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Capítulo 10 Estruturas de controle de fluxo. Introdução ao MATLAB p.1/21

Computação e Programação Exame Resolvido 1ª Época

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Noções de algoritmos - Aula 1

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

Características Básicas

Programação: Vetores

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Algoritmos e Programação

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Strings. Para começar... Strings. Exemplo...

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

3.1 - Funções para manipular dados de entrada e saída padrão

Aula 10: Introdução a Vetores e Matrizes

Algoritmos de pesquisa

Linguagem C estruturas de repetição

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

TP062-Métodos Numéricos para Engenharia de Produção Erros-Ponto Flutuante

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

LINGUAGEM C: ARRAY: VETORES E MATRIZES

Variável Composta Homogênea Unidimensional e Multidimensional - ARRAY

Aula 6: Comandos Estruturados Estrutura Condicional

Breve Introdução à Programação em Scilab 6.0

Curso de Especialização em Teleinformática e Redes de Computadores Departamento Acadêmico de Eletrônica Universidade Tecnológica do Paraná

Aula 15 Variáveis Indexadas (vetores)

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

A c c e s s B á s i c o

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?

Algoritmos e Programação

Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:

APRESENTAÇÃO DO SPSS

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

7 Comandos e Estruturas de Controle

Prof. Esp. Andrew Rodrigues 1

Introdução ao Scilab

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

MATLAB. Que é MATLAB?

Programação Orientada a Objetos

Introdução ao MATLAB. Parte 2

MESTRADO EM MACROECONOMIA e FINANÇAS Disciplina de Computação. Aula 01. Prof. Dr. Marco Antonio Leonel Caetano

Aula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU

MATLAB Avançado. Melissa Weber Mendonça

Informática para Ciências e Engenharias 2014/15. Teórica 4

Algoritmos e Programação

PHP INTRODUÇÃO DELIMITADORES DE CÓDIGO EXTENSÃO DE ARQUIVOS

Introdução à Ciência da Computação

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

Aula 04. Agregados Homogêneos. Agregados Heterogêneos. Matrizes

Introdução ao MATLAB. Parte II. Afonso Paiva ICMC-USP

PÓS-GRADUAÇÃO PRESENCIAL MARINGÁ

MCG114 Programação de Computadores I. Comandos de condição 3/26/18. Comando if. Comando if. Até agora... Comandos de Condição! Comandos de Condição

O que são as funções aleatorioentre e ordem

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Laboratório de Programação II

Elementos básicos das linguagens de programação

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Computação Científica com MATLAB. Melissa Weber Mendonça

ESTRUTURAS COMPOSTAS

Algoritmo e Linguagem C++

VETORES Motivação AULA 19

Vetores. Vanessa Braganholo

Linguagem de Programação III - PHP

4. Constantes. Constantes pré-definidas

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Working 03 : Conceitos Básicos II

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Tutorial de Matlab Francesco Franco

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Comandos de desvio de fluxo. Expressões lógicas.

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Aula 06 Lógica de Programação: Estruturas condicionais

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

A c c e s s. Data Lógica Informática. Ambiente Real Conhecimento de Verdade. Carga Horária (referencial): 30 horas. Pré-requisito: Windows

Transcrição:

Computação Científica com MATLAB Melissa Weber Mendonça melissa.mendonca@ufsc.br

Aula passada... Algoritmos: conceito; tipos de dados; scripts; Modo interativo do MATLAB: familiarização com o software; comandos de entrada e saída; comandos de atribuição; manipulação de variáveis; funções básicas; Variáveis indexadas: vetores; matrizes. Processos de repetição: o comando for, o comando while

Hoje Mais matrizes; Condicionais: o comando if no MATLAB; Células e estruturas; Leitura e escrita em arquivos; Importação de dados (wizard)

Slicing A(i,j) A(i,:) A(:,j) A(:,:) A(:) A(1:2,:) A(1,2:3)

Apagando elementos Podemos apagar elementos de matrizes (ou linhas/colunas inteiras) usando a seguinte sintaxe: >> A(i,:) = [] >> A(:,j) = []

Append Em uma lista, podemos acrescentar elementos a qualquer momento: >> lista = [1,3,4,5] >> lista = [lista 2] >> lista

Dica As operações acima também se aplicam a texto! >> frase = Oi, como vai? >> frase = [frase(1:length(frase)-1) voc^e? ] >> frase = strcat( Oi,, como, vai, voc^e? ) Atenção: strcat não preserva os espaços em branco.

Reshape Podemos facilmente mudar o tamanho e o formato de uma matriz ou vetor usando o comando reshape: >> reshape(a,m,n)

if - else - end O if ( se ) representa uma sentença lógica condicional: Se (sentença lógica) ent~ao faça (1) Sen~ao faça (2) Fim Se

if - else - end O if ( se ) representa uma sentença lógica condicional: if (sentença lógica) faça (1) else faça (2) end Em Matlab, uma sentença lógica pode ter dois valores: 0 (Falso) ou 1 (Verdadeiro)

Comparação Para comparar dois números a e b, usamos os seguintes sinais em MATLAB: a é igual a b? a é maior que b? a é menor que b? a é maior ou igual a b? a é menor ou igual a b? a é diferente de b? a == b a > b a < b a >= b a <= b a = b

Importante Atenção: ao compararmos números reais, devemos tomar cuidado com erro de arredondamento e a representação por ponto flutuante. Exemplo: >> 3-1.1-0.9 ans = 1.0000 >> 1 == (3-1.1-0.9) ans = 0 (falso!)

ElseIf Nos casos em que precisamos de mais de 2 alternativas, podemos usar um atalho: elseif. if (sentença lógica) faça (1) elseif faça (2) else faça (3) end

e - && Muitas vezes, precisamos agrupar valores lógicos. Exemplo: Se uma pessoa for homem e tiver mais de 18 anos, deve se inscrever no serviço militar. Se g^enero == homem ent~ao Se idade >= 18 ent~ao Inscreva-se no serviço militar. Sen~ao Voc^e está liberado! Fim Se Sen~ao Voc^e está liberada! Fim Se

e - && Muitas vezes, precisamos agrupar valores lógicos. Exemplo: Se uma pessoa for homem e tiver mais de 18 anos, deve se inscrever no serviço militar. Se (g^enero == homem) e (idade >= 18) ent~ao Inscreva-se no serviço militar. Sen~ao Voc^e está liberado(a)! Fim Se

e - && No Matlab: representamos o e por &&: if (numero > 0) && (numero < 1) disp( Numero esta entre 0 e 1. ) end

ou - Exemplo: Como decidir se um carro precisa de uma primeira revisão? Se (idade do carro >= 1 ano) Faça a revis~ao. Fim Se Se (km >= 10.000) Faça a revis~ao. Fim Se Se qualquer uma das duas condições for satisfeita, tomaremos a mesma decisão.

ou - Exemplo: Como decidir se um carro precisa de uma primeira revisão? Se (idade do carro >= 1 ano) ou (km >= 10.000) Faça a revis~ao. Fim Se

ou - No Matlab: representamos o ou por : if (numero > 0) ou (numero < 0) disp( Numero é diferente de zero. ) end

Comparando texto Se quisermos comparar os conteúdos das variáveis texto1 e texto2, usamos a função strcmp(texto1,texto2) Cuidados: Um texto deve sempre ser informado entre aspas simples. sim sim sim Sim Se a diferença entra maiúsculas e minúsculas não for importante, podemos usar a função strcmpi(texto1,texto2).

Transformando dados str2num: transforma texto em número num2str: transforma um número em texto disp([ O vetor tem, num2str(length(v)), entradas. ]) num2str(10) = 10 serve para imprimir um número no meio de um texto. str2num( 25 ) = 25 str2num( texto ) =?

Estruturas de dados Heterogêneas Muitas vezes, gostaríamos de armazenar dados da seguinte forma: Título Núm. Páginas Datas de Empréstimo e Devolução Álgebra Linear 205 12/08, 15/08 Cálculo 346 10/09, 12/09 Geometria 123 04/08, 05/09 Topologia 253 01/08, 04/09 Porém, estes dados são de natureza heterogênea: misturamos texto (string), números e intervalos. Como armazenar isso em uma só tabela no MATLAB?

Estrutura Cell No MATLAB, podemos fazer o seguinte: >> tabela = { Algebra Linear, 205, [1208, 1508]; >> Calculo, 346, [1009,1209]; >> Geometria, 123, [0408,0509]; >> Topologia, 253, [0108,0409] } A célula funciona como uma matriz, mas aqui os índices são dados sempre entre chaves: {}.

Comandos Para ver o que está armazenado na variável tabela, basta usarmos o comando >> celldisp(tabela) Para verificar o tamanho de uma célula, usamos o comando >> size(tabela) Para criar uma célula vazia com m por n elementos, usamos o comando >> tabela = cell(m,n) Para apagar um elemento da célula, podemos usar a notação de matriz vazia: >> tabela{1,2} = []

Outras possibilidades... Célula de células: >> v = { {1, teste, [1;2]}; {[0,3], 12, nome, rand(4,4)} } Neste caso, os elementos devem ser referenciados da seguinte forma: >> v{2}{1}

Outras possibilidades... Vetor de células: >> v = [ {1, teste, [1;2]}; {[0,3], 12, nome } ] Cuidado! Aqui, as células devem ter a mesma dimensão para ficarem em um vetor: se cada célula é 3 2, e temos 10 células, o tamanho do vetor de células será 30 2. Neste caso, os elementos devem ser referenciados da seguinte forma: >> v(2){1}

Mais comandos Podemos, analogamente ao que fizemos com vetores, concatenar células: >> C1 = { Joao, 16} >> C2 = { Maria, 18; Ricardo, 13} >> cola = {C1 C2} cuidado! >> uniao = [C1; C2]

Estruturas Outra maneira de armazenar dados heterogêneos é usar estruturas: cada estrutura é composta de campos que podem conter quaisquer tipos de dados (assim como as células), e que são referenciados por nome. Para criarmos uma estrutura chamada dados com o campo chamado Nome, podemos usar diretamente a sintaxe >> dados.nome = Melissa ou >> dados = struct( Nome, Melissa )

Importar dados Para importarmos dados, o método mais fácil é utilizar a interface gráfica do MATLAB, selecionando File Import Data Para verificar os tipos de arquivo suportados e as funções disponíveis, consulte o Help.

xlsread Para ler arquivos de planilha gerados pelo Microsoft Excel, usamos >> [dados,texto,resto] = xlsread(arquivo) Para ler os dados de uma planilha específica do arquivo, usamos >> [dados,texto,resto] = xlsread(arquivo,planilha) Em sistemas com o Microsoft Excel instalado, pode-se usar >> [dados,texto,resto] = xlsread(arquivo,-1) para abrir uma janela do Excel e selecionar os dados a serem importados interativamente.