Aula05

42
Matrizes em Scilab Yuri Tavares dos Passos Gabriel de Carvalho Arimatéa Fernando Melo Nascimento

Transcript of Aula05

Matrizes em Scilab

Yuri Tavares dos PassosGabriel de Carvalho ArimatéaFernando Melo Nascimento

Matrizes

● Em qualquer linguagem de programação, uma matriz é uma estrutura de armazenamento de dados com indexação bidimensional.

● A primeira dimensão corresponde a linha da matriz e a segunda dimensão a coluna.

● Assim como na Matemática, matrizes podem ser representadas graficamente como nos exemplos a seguir:

Matrizes em Scilab

● Em Scilab, a declaração de uma matriz é feita de modo análogo ao vetor, mas com o uso de uma dimensão extra.

● A dimensão extra é adicionada com ';'.

Exemplo 1

● A = {1 2 3; 4 5 6; 7 8 9}

Exemplo 1

Exemplo 2

● B = {0, 0; 1, 1}

Exemplo 2

Exemplo 3

● C = {0, 0, 1; 1, 2; 2, 3.4, 3}– Válido ou inválido?

Exemplo 3

Matrizes em Scilab

● A utilização de matriz pode ser feita elemento a elemento. Para acessar cada elemento deve-se indexá-lo pela linha e pela coluna:– A(1,1) = 2;

– A(1,2) = 3;

– B(2,1) = 1.1;

– B(2,3) = 7.1;

Exemplo 1

● Escreva um algoritmo que leia uma matriz de 2 linhas por 3 colunas de números reais via teclado. Em seguida, escreva esta matriz na tela.

Exemplo 1

● Solução 1

Exemplo 1

● Solução 1

Exemplo 1

● Solução 2

Exemplo 1

● Solução 2

Exemplo 1

● Solução 3

Exemplo 1

● Solução 3

Exemplo 2

● Escreva um algoritmo que extraia a diagonal principal de uma matriz NxN, quadrada, com N elementos e seus elementos lidos pelo usuário. Salve os valores da diagonal em um vetor e escreva seus valores na tela.

Exemplo 2

Exemplo 3

● Escreva um algoritmo que leia duas matrizes. A matriz A tem tamanho MxN e a matriz B é LxK. Faça um algoritmo que:– Teste se é possível realizar a multiplicação de

A por B. Isto só é possível se N=L.

– Se elas podem ser multiplicadas, crie uma matriz C resultante desta multiplicação, onde:

C ij=∑K=1

N

AiK BKj

Exemplo 3

Exemplo 3 (cont.)

Exemplo 4

● Escreva um algoritmo que leia uma matriz MxN e armazene seus elementos em um vetor. Leia os elementos da matriz linha por linha. Exemplo:

A=[1 2 34 5 67 8 9 ] V=[

123456789

]

Exemplo 4

Exemplo 5

● Escreva um algoritmo que leia um vetor de tamanho T = MN e escreva seus elementos em uma matriz de tamanho MxN. – Ao invés de ler a matriz e escrever o vetor,

deve-se ler o vetor e escrever a matriz

Exemplo 5

Exercício

● Escreva um algoritmo que leia a quantidade de linhas e colunas de uma matriz, leia a posição i e j de um elemento qualquer desta matriz e indique qual a posição k do vetor da questão 3 que este elemento se encontraria. Não crie nenhum vetor ou matriz neste programa.

Matrizes e vetores

● Uma matriz pode ser entendida como um vetor feito com outros vetores.

● O comando for do Scilab pode ser utilizado para manipular os vetores colunas de uma matriz.

Matrizes e vetores

● Exemplo

Matrizes e vetores

● Resultado

Submatrizes

● O Scilab permite que você acesse porções de matriz de modo fácil usando “:”.

● Com :, você define o limite inicial e final da submatriz que será utilizada.

● Sintaxe:– <limite inicial>:<limite final>

Submatrizes

● Exemplo

Submatrizes

● A(1:3,2:3)● A(1:4,2:2)

Submatrizes

● Não utilizar limites inferiores e superiores significa que deseja-se todos os valores.

● Exemplo– A(:,1:3)

– A(1:2,:)

Comando size

● O Scilab oferece o comando size para retornar a quantidade de elementos em cada dimensão

● Exemplo

Hipermatrizes

● Além das matrizes bidimensionais, o Scilab oferece o uso de matrizes n-dimensionais.

● Exemplo:– Suponha T uma matriz tridimensional.

– O acesso a cada elemento de T é feito utilizando 3 indíces.

Hipermatrizes

● Exemplo (continuação)– T(1,3,2) significa o acesso ao elemento na 1ª

linha, 3ª coluna e 2ª profundidade.

Arquivos no Scilab

● O Scilab foi projetado para trabalhar com grandes volumes de dados.

● Os comandos para leitura e escrita de arquivos poupa a digitação de grandes volumes de dados.

● As variáveis criadas no Scilab podem ser salvas em arquivos para serem utilizadas em outras execuções.

● Para escrita de arquivos, usa-se save ou write.● Para leitura de arquivos, usa-se load ou read.

Escrita de arquivos

● Para salvar uma variável qualquer em um arquivo binário, utiliza-se o comando save.

● Sintaxe mais comum:– save(nome_do_arquivo, lista_de_variáveis)

● Exemplo● save("A.dat",A)● save("ABC.dat",A,B,C)

Escrita de arquivos

● Para salvar uma variável qualquer em arquivo texto, usa-se o comando write.

● Um arquivo texto pode ser visualizado em editores de texto como notepad, Word, etc.

● Sintaxe mais comum:– write(nome_do_arquivo, variável)

● Exemplo:– write("A.txt",A)

Leitura de arquivos

● Para ler uma variável qualquer já salva em um arquivo binário, utiliza-se o comando load.

● Sintaxe mais comum:– load(nome_do_arquivo, lista_de_variáveis)

● Exemplo● load("ABC.dat","A","B","C")● load("teste3D.dat","t")

Leitura de arquivos

● Para ler uma variável qualquer salva previamente em arquivo texto, usa-se o comando read.

● Sintaxe mais comum:– read(nome_do_arquivo, lista_de_dimensões)

● O resultado de read deve ser atribuído a alguma variável.

● Exemplo:– A = read("A.txt",50,100);