segunda-feira, 19 de maio de 2014

MATRIZES MULTIDIMENSIONAIS

Frequentemente são utilizados muitos conjuntos de dados que expressam a variação de um parâmetro físico ao longo do tempo. Vejamos o exemplo simples da variação da temperatura de uma sala aula ao longo do dia. Esta temperatura pode variar devido a vários factores, como a entrada e saída de alunos na sala ou até pelo simples facto da sala estar mais ou menos exposta à radiação solar ao longo do dia. Mas para já não nos vamos preocupar com as causas dessa variação. O que interessa aqui é o seguinte: Temos um espaço onde é medida essa temperatura que pode ser representada por uma grelha rectangular de pontos (espaço bidimensional). Adicionalmente, existe a variação da temperatura ao longo do tempo. Imaginemos então que a nossa malha de pontos de medição da temperatura é uma matriz 4x4 e que os valores inscritos nessa matriz correspondem aos valores da matriz mágica (instrução magic (4)). Imaginemos, ainda, que os valores medidos correspondem às permutações das colunas de uma matriz de 4x4, ou seja, utilizando a linguagem combinatória isso equivale a dizer que temos 4! de permutações (4!=4x3x2x1=24).

No editor do Matlab podemos escrever um programa simples que vai fazer estas permutas:

 p=perms(1:4); % vai fazer a permutação das colunas de uma matriz (4x4), ou seja, são no total 4! de permutações (4!=4x3x2x1=24)
A=magic(4); % define a matriz mágica
M=zeros(4,4,24); % representa o novo conjunto de 24 matrizes (de 4x4) que resultam das 4!      permutações
for k=1:24 % inicia um ciclo com as 24 permutações (de 1 a 24)
    M(:,:,k)=A(:,p(k,:)); % são trocadas sucessivamente todas as colunas da matriz de 4x4 tal como      figura na instrução p associada ao índice j da notação matricial
end % fim do ciclo

E os resultados são:

 val(:,:,1) =

    13     3     2    16
     8    10    11     5
    12     6     7     9
     1    15    14     4


val(:,:,2) =

    13     3    16     2
     8    10     5    11
    12     6     9     7
     1    15     4    14


val(:,:,3) =

    13     2     3    16
     8    11    10     5
    12     7     6     9
     1    14    15     4


val(:,:,4) =

    13     2    16     3
     8    11     5    10
    12     7     9     6
     1    14     4    15


val(:,:,5) =

    13    16     2     3
     8     5    11    10
    12     9     7     6
     1     4    14    15


val(:,:,6) =

    13    16     3     2
     8     5    10    11
    12     9     6     7
     1     4    15    14


val(:,:,7) =

     3    13     2    16
    10     8    11     5
     6    12     7     9
    15     1    14     4


val(:,:,8) =

     3    13    16     2
    10     8     5    11
     6    12     9     7
    15     1     4    14


val(:,:,9) =

     3     2    13    16
    10    11     8     5
     6     7    12     9
    15    14     1     4


val(:,:,10) =

     3     2    16    13
    10    11     5     8
     6     7     9    12
    15    14     4     1


val(:,:,11) =

     3    16     2    13
    10     5    11     8
     6     9     7    12
    15     4    14     1


val(:,:,12) =

     3    16    13     2
    10     5     8    11
     6     9    12     7
    15     4     1    14


val(:,:,13) =

     2     3    13    16
    11    10     8     5
     7     6    12     9
    14    15     1     4


val(:,:,14) =

     2     3    16    13
    11    10     5     8
     7     6     9    12
    14    15     4     1


val(:,:,15) =

     2    13     3    16
    11     8    10     5
     7    12     6     9
    14     1    15     4


val(:,:,16) =

     2    13    16     3
    11     8     5    10
     7    12     9     6
    14     1     4    15


val(:,:,17) =

     2    16    13     3
    11     5     8    10
     7     9    12     6
    14     4     1    15


val(:,:,18) =

     2    16     3    13
    11     5    10     8
     7     9     6    12
    14     4    15     1


val(:,:,19) =

    16     3     2    13
     5    10    11     8
     9     6     7    12
     4    15    14     1


val(:,:,20) =

    16     3    13     2
     5    10     8    11
     9     6    12     7
     4    15     1    14


val(:,:,21) =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1


val(:,:,22) =

    16     2    13     3
     5    11     8    10
     9     7    12     6
     4    14     1    15


val(:,:,23) =

    16    13     2     3
     5     8    11    10
     9    12     7     6
     4     1    14    15


val(:,:,24) =

    16    13     3     2
     5     8    10    11
     9    12     6     7
     4     1    15    14

Ou seja, temos um conjunto de 24 matrizes que podiam representar a variação da temperatura de uma sala de aula, de hora a hora, em 24 horas e medida em 16 pontos diferentes (matriz 4x4).

   

Sem comentários: