Como criar e acessar uma matriz multidimensional em matlab
MATLAB fornece um número de maneiras em que para criar arrays multidimensionais. O primeiro método é simplesmente dizer MATLAB para criá-lo para você e encher cada um dos elementos com zeros.
Conteúdo
Criando uma matriz multidimensional
o zeros () função ajuda você a executar esta tarefa. Para criar uma matriz 2 x 3 x 3, você digita aj = zeros (2, 3, 3) e pressione Enter. Você vê o seguinte resultado:
Video: Matlab | Aula 2 - Matrizes e vetores
aj (:,:, 1) = 0 0 00 0 0AJ (:,:, 2) = 0 0 00 0 0AJ (:,:, 3) = 0 0 00 0 0
Esta saída diz que há três empilhadas 2 x 3 matrizes e cada um é preenchido com zeros. Claro, você não pode querer começar com uma matriz que é preenchido com zeros, então você pode usar uma outra abordagem. Os passos seguintes ajudá-lo a criar uma matriz 2 x 3 x 3 que já está preenchido com dados:
Tipo ak (:,:, 1) = [1, 2, 3- 4, 5, 6] e pressione a tecla Enter.
Você vê o seguinte resultado:
ak = 1 2 34 5 6
Este passo cria a primeira página da matriz tridimensional. Você quer três páginas, então você realmente precisa para executar este passo três vezes.
Video: [Matlab] Aula 03 - Criando Matrizes
Tipo ak (:,:, 2) = [7, 8, 9 e 10, 11, 12] e pressione a tecla Enter.
MATLAB adiciona outra página, como mostrado:
ak (:,:, 1) = 1 2 34 5 6AK (:,:, 2) = 7 910 8 11 12
Se você olhar para a janela do Workspace, neste ponto, você vê que a coluna tamanho para ak agora é 2 x 3 x 2. É neste ponto que você vê a terceira dimensão adicional. Antes que você adicionou esta segunda página, MATLAB simplesmente tratados ak como uma matriz de 2 x 3, mas agora tem o terceiro conjunto dimensão.
Tipo ak (:,:, 3) = [13, 14, 15- 16, 17, 18] e pressione a tecla Enter.
A saída agora se parece muito com o aj de saída, excepto que os elementos têm valores, como mostrado a seguir:
ak (:,:, 1) = 1 2 34 5 6AK (:,:, 2) = 7 910 8 11 12ak (:,:, 3) = 13 14 1516 17 18
Você não tem que definir valores atribuídos utilizando múltiplos passos. o gato() função permite-lhe criar a matriz tridimensional inteira em uma única etapa. A primeira entrada que você faz para o gato() função é o número de dimensões. Em seguida, adicione os dados para cada dimensão, separados por vírgulas.
Para ver como isso funciona, tipo al = gato (3, [1, 2, 3- 4, 5, 6], [7, 8, 9 e 10, 11, 12], [13, 14, 15- 16, 17, 18]) e pressione Enter. Você vê esta saída (que se parece incrivelmente como o ak matriz):
al (:,:, 1) = 1 2 34 5 6Al (:,:, 2) = 7 910 8 11 12al (:,:, 3) = 13 14 1516 17 18
Você também pode decidir que você não quer digitar muito, mas ainda não quer zeros na matriz. Neste caso, use o randn () função para aleatórios dados com distribuição normal ou o rand () função de dados distribuídos uniformemente. Esta função funciona exatamente como o zeros () função, mas enche os elementos com dados aleatórios.
Para ver como essa função funciona, tipo AM = randn (2, 3, 3) e pressione Enter. Você vê uma matriz tridimensional preenchido com dados aleatórios. Não é provável que sua saída será precisamente como o seguinte resultado, mas a saída a seguir fornece uma idéia do que você deve esperar:
am (:,:, 1) = 1,4090 0,6715 0.71721.4172 -1,2075 1.6302am (:,:, 2) = 0,4889 0,7269 0.29391.0347 -0,3034 -0.7873am (:,:, 3) = 0,8884 -1,0689 -2.9443- 1,1471 -0,8095 1,4384
Aceder a uma matriz multidimensional
Não importa como você criar a matriz, eventualmente você precisar acessá-lo. Para aceder a toda a matriz, você simplesmente usar o nome da matriz, como de costume. No entanto, você pode não precisar acessar toda a matriz.
Por exemplo, talvez você precise acessar apenas uma página. Estes exemplos assumem que você criou matriz ak. Para ver apenas a segunda página de matriz ak, você digita ak (:,:, 2) e pressione Enter. Não surpreendentemente, você vê a segunda página, como mostrado aqui:
ans = 7 8 910 11 12
Os dois pontos (:) Fornece um meio para você dizer MATLAB que deseja toda a gama de um elemento de matriz. Os valores são linhas, colunas e páginas neste caso. Assim, o pedido que você fez foi para toda a gama de página 2. Você poderia pedir apenas uma linha ou coluna. Para obter a segunda linha da página 2, você digita ak (2,:, 2) e pressione Enter.
A saída parecido com este:
ans = 10 11 12
A segunda coluna da página 2 é tão fácil. Neste caso, você digita ak (:, 2, 2) e pressione Enter. A saída aparece em formato de coluna, como este:
ans = 811
Aceder a um valor indivíduo significa proporcionar todos os três valores. Quando você digita ak (2, 2, 2) e pressione Enter, você recebe 11 como a saída porque esse é o valor na linha 2, coluna 2, da página 2 para a matriz ak.
Você também tem acesso a seleções alcance para matrizes multidimensionais. Neste caso, você deve fornecer um intervalo para uma das entradas. Por exemplo, se você deseja obter o acesso para a linha 2, colunas 1 e 2, da página 2 para a matriz ak, você digita ak (2, [1: 2], 2) e pressione Enter.
Note-se que a gama aparece dentro de parêntesis rectos, e o início e o fim do intervalo são separados por dois pontos. Aqui é a saída que você vê neste caso:
Video: Matlab Tutorials: How to use multidimensional/ 3-D array in matlab
ans = 10 11
O uso de faixas funciona onde quer que você precisar deles. Por exemplo, digamos que você quer linhas 1 e 2, colunas 1 e 2, da página 2. Tipo de Você ak ([1: 2], [1: 2], 2) e pressione Enter. O resultado se parece com isso:
ans = 7 810 11