O IDL é uma linguagem baseada em matrizes sejam elas unidimensionais (vetores) ou bidimensionais.

Documentos relacionados
Análise e Processamento de Imagem

Análise e Processamento de Imagem

Organização do Guia. Esta é uma tentativa de facilitar a compreensão deste manual de IDL. Foi utilizado um estilo de manual típico, como segue abaixo.

Compile e execute este programa principal com o comando de execução.run:

Algoritmos II prof. Daniel Oliveira

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

CI208 - Programação de Computadores. Aula 24: Arrays. Prof. MSc. Diego Roberto Antunes

Vetores Unimensionais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Arrays. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Matrizes (Vetores Bidimensionais)

Programação I A Linguagem C. Prof. Carlos Alberto

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

TÉCNICO DE INFORMÁTICA - SISTEMAS

1/50. Conceitos Básicos. Programa Básico

Introdução à Linguagem de Programação Java 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA

Microcontroladores PROF. ME. HÉLIO ESPERIDIÃO

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

Curso de PHP. FATEC - Jundiaí. A diferença a entre as matrizes e as arrays é que acrescentamos mais

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

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

Introdução à Programação

4. Constantes. Constantes pré-definidas

Aula 06 Introdução à Programação Matrizes

Sintaxe da linguagem Java

Programação I Funções. Prof. Carlos Alberto

Laboratório de Programação II

A Linguagem C. A forma de um programa em C

Variáveis Compostas. Vanessa Braganholo

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

Programação Orientada a Objetos

Vetores Unimensionais

Métodos Computacionais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Aula 08: Funções (Parte II)

LP2 Laboratório de Programação 2 Ciência da Computação. Problema proposto

RESUMO DE CONCEITOS BÁSICOS DE C

Aula 25: Funções com Arrays

ALOCAÇÃO DINÂMICA DE MEMORIA Lista 10. A linguagem C/C++ possui recursos para alocação dinâmica de memoria.

Vetores Unimensionais

3. Linguagem de Programação C

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Unidade 8: Sobrecarga de Funções e Vetores e Matrizes (Arrays) Prof. Daniel Caetano

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Ponteiros. Ponteiros. Ponteiros. Ponteiros. Ponteiros. Introdução a Programação. Profa. Roseli Romero

LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz

Linguagem de Programação III

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Variáveis Compostas. Leonardo Gresta Paulino Murta.

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

3. Linguagem de Programação C

LINGUAGEM C: ARRAY: VETORES E MATRIZES

modificador h instrui a função printf( ) a exibir um short int. Portanto, %hu indica que o dado é do tipo short unsigned int.

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

7 Operadores e Expressões

Linguagem C: Introdução

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

Alocação Dinâmica de Memória. Programação II

Mais sobre Ponteiros em C

MC-102 Aula 02 Shell Interativa, Programa Básico, Variáveis, Atribuições, Tipos Simples. Instituto de Computação Unicamp

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Linguagens de Programação Classificação

Paradigmas de Linguagens

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Programação II. Aula 1

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Definição de Matrizes em Linguagem C. Matrizes unidimensionais

Programação de Computadores III

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti

Introdução a C. Para saber quais os procedimento ou funções que existem em cada biblioteca, acesse

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

Introdução à Computação MAC0110

Operadores e Expressões: bit-a-bit e especiais

Array em Java. Figura 1 - Exemplo de um array de inteiros

Revisão C++ - Parte 1

Aula 4 - Operadores. Prof. Laura Silva de Assis. Engenharia de Computação 2 o Período

Gráfico em Linha. IDL> plot, chirp

C Operadores e Expressões

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Fundamentos Programação

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

AULA 02 DADOS PRIMITIVOS E EXERCÍCIOS

Disciplina de Algoritmos e Programação

Aula 4: Introdução à Linguagem C++

Linguagem C Princípios Básicos (parte 1)

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Introdução ao Fortran 90-1

Programação Estruturada Aula 9 - Matrizes e Strings II

Atualização Técnica e Pedagógica de Professores no componente de Lógica de Programação com C# (console) Semana 4 Vetor e Matriz

Aula 10: Introdução a Vetores e Matrizes

Programação Orientada a Objetos para Redes de Computadores

Funções em Linguagem C Parte II

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique

Introdução ao FORTRAN 90. Aula 4

Transcrição:

Matricial e Vetorial O IDL é uma linguagem baseada em matrizes sejam elas unidimensionais (vetores) ou bidimensionais. Criação Tipo Função de Criação Índice que gera a Função Byte BYTARR BINDGEN Integer INTARR INDGEN Unsigned integer UINTARR UINDGEN Long integer LONARR LINDGEN Unsigned long ULONARR ULINDGEN integer 64-bit integer LONG64ARR L64INDGEN Unsigned 64-bit ULONG64ARR UL64INDGEN integer Float FLTARR FINDGEN Double DBLARR DINDGEN Complex COMPLEXARR CINDGEN Double complex DCOMPLEXARR DCINDGEN String STRARR SINDGEN Pointer PTRARR Object OBJARR Undefined Structure REPLICATE Vetores e matrizes com diferentes tipos de variáveis e dados podem ser iniciados com rotinas do IDL como as listadas na tabela acima. IDL> vec = fltarr (15) IDL> vec[5] = 4.56 IDL> vec[13]= 1234.333 Matrizes e vetores no IDL começam com 0; consequentemente o vetor vec está subscrito de 0 até 14. Vetores e matrizes também podem ser criados atribuindo à variável certo número de valores passados por colchetes. IDL> temp = [12, 82, 97, 23, 0, 78] Esta instrução cria um vetor de seis inteiros. Uma matriz de múltipla dimensão pode ser criada colocando valores dentro de vários colchetes dentro de dois colchetes, observe: IDL> id4x4 = [ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1] ] IDL> help, id4x4 ID4x4 INT = Array [4, 4] A variável id4x4 tornou-se uma matriz 4 X 4 de inteiros. Considere a instrução abaixo:

IDL> exemplo_arr = [3.4, 6.7D, 45U, 90L] Esta instrução cria um vetor com diferentes tipos de variável. O IDL não apresenta problemas diante disso, ele executa uma conversão pelo tipo mais significativo. O tipo mais significativo nesta instrução é o double (6.7D). Todos os elementos do vetor são convertidos para double. Operação de matrizes e vetores Quando executamos uma operação com matrizes ou vetores no IDL, eles são executados em todos os elementos que estão dentro desta matriz ou vetor. Esta poderosa característica elimina a necessidade da utilização do laço para executar uma operação com cada um dos elementos. IDL> x = findgen (360) *!dtor IDL> sincurve = sin(x) IDL> plot, sincurve A primeira instrução multiplica os números 0.0, 1.0, 2.0,...359.0 pela variável de sistemas!dtor fazendo a transformação de grau para radiano constante, então a segunda instrução calcula o seno de todos os elementos resultados pela transformação de graus em radianos, e a terceira linha de comando como já vimos anteriormente nesse guia exibe, um gráfico em linha do calculo final da matriz. Isto beneficia o IDL, eliminando o tempo consumido para controlar os laços, que executam as operações em todos os elementos do vetor. Use a vantagem desta possibilidade o máximo que poder - é mais rápido e mais fácil de ler.

Matrizes Multidimensionais As matrizes no IDL podem ter até oito dimensões. No caso da matriz bidimensional do IDL a subscrição é especificada normalmente como [coluna, linha]. IDL> multi = lindgen (4, 6) IDL> print, multi ; quatro colunas, seis linhas 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 O método de subscrição do IDL é por coluna. Internamente as matrizes são dispostas no formato de linha ( os elementos do multi são numerados na ordem em que eles são armazenados na memória). A subscrição em uma matriz bidimensional pode ser feita utilizando a notação [coluna, linha]. IDL> print, multi [1, 0], multi [3, 5] 1 23 Todas as escalas de operadores podem ser utilizadas nas matrizes multidimensionais. IDL> print, multi [*, 4] ; a quinta linha 16 17 18 19 IDL> print, multi [2, *] ; a terceira coluna 2 6 10 14 18 22 IDL> print, multi [2: 3, 1: 2] 6 7 10 11 ; uma quadra a 3º e a 4º coluna e a 2º e 3º linha Multiplicação de Matrizes O operador # calcula o produto de uma matriz, multiplicando as colunas da primeira matriz pelas linhas da segunda. A segunda matriz deve ter o mesmo número de colunas que a primeira tem de linhas. A matriz resultante terá o número de colunas da primeira matriz e o mesmo número de linhas da segunda matriz. Por exemplo: IDL> a = indgen(3,2) ; matriz 3 X 2, na sintaxe do IDL. IDL> print, a 0 1 2 3 4 5 IDL> b = indgen(2,3) ; matriz 2 X 3. IDL> print, b

0 1 2 3 4 5 IDL> print, a # b 3 4 5 9 14 19 15 24 33 Os cálculos são feitos desta forma: A 0,0. B 0,0 + A 0,1. B 1,0 A 1,0. B 0,0 + A 1,1. B 1,0 A 2,0. B 0,0 + A 2,1. B 1,0 A 0,0. B 0,1 + A 0,1. B 1,1 A 1,0. B 0,1 + A 1,1. B 1,1 A 2,0. B 0,1 + A 2,1. B 1,1 A 0,0. B 0,2 + A 0,1. B 1,2 A 1,0. B 0,2 + A 1,1. B 1,2 A 2,0. B 0,2 + A 2,1. B 1,2 Usando os valores atuais: ( 0 ).( 0 ) + ( 3 ).( 1 ) ( 1 ).( 0 ) + ( 4 ).( 1 ) ( 2 ).( 0 ) + ( 5 ).( 1 ) ( 0 ).( 2 ) + ( 3 ).( 3 ) ( 1 ).( 2 ) + ( 4 ).( 3 ) ( 2 ).( 2 ) + ( 5 ).( 3 ) ( 0 ).( 4 ) + ( 3 ).( 5 ) ( 1 ).( 4 ) + ( 4 ).( 5 ) ( 2 ).( 4 ) + ( 5 ).( 5 ) O operador ## calcula o produto de uma matriz, multiplicando as linhas da primeira matriz pelas colunas da segunda. A segunda matriz deve ter o mesmo número de linhas que a primeira tem de colunas. A matriz resultante terá o número de linhas da primeira matriz e o mesmo número de colunas da segunda matriz. Por exemplo: IDL> print, a ## b 10 13 28 40 Os cálculos são feitos desta forma: A 0,0. B 0,0 + A 1,0. B 0,1 + A 2,0. B 0,2 A 0,0. B 1,0 + A 1,0. B 1,1 + A 2,0. B 1,2 A 0,1. B 0,0 + A 1,1. B 0,1 + A 2,1. B 0,2 A 0,1. B 1,0 + A 1,1. B 1,1 + A 2,1. B 1,2 Usando os valores atuais: ( 0 ).( 0 ) + ( 1 ).( 2 ) + ( 2 ).( 4 ) ( 0 ).( 1 ) + ( 1 ).( 3 ) + ( 2 ).( 5 ) ( 3 ).( 0 ) + ( 4 ).( 2 ) + ( 5 ).( 4 ) ( 3 ).( 1 ) + ( 4 ).( 3 ) + ( 5 ).( 5 ) A função WHERE A função WHERE avalia uma expressão e retorna um índice unidimensional de cada elemento em um vetor para todas as expressões verdadeiras (ele retorna a posição, não os valores dos dados). Se a expressão for falsa, o valor de retorno é 1. Por exemplo, iremos alterar todos os elementos entre 0.4 e 0.5 de uma matriz para 1.0: IDL> x = findgen (360) *!dtor IDL> data = sin(x) IDL> indices = where ( data gt 0.4 and data lt 0.5, count) IDL> print, count 12 IDL> data [indices] = 1.0

Observe que na terceira linha, onde se encontra a função WHERE há um argumento chamado count, este argumento cria uma variável com o nome que você decidir (no exemplo ela é chamada de count), esta variável irá retornar o número total de elementos encontradas pela função. Uma matriz multidimensional também pode utilizar a função WHERE. Por exemplo, IDL> d = dist (100) IDL> surface, d IDL> multi_ind = where (d gt 65, count) IDL> print, count 145 IDL> d [multi_ind] = 0.0 IDL> surface, d

Note que os comandos são praticamente iguais, aos de uma matriz unidimensional.