Matrizes
Edição¶
Existem várias formas de inserir uma matriz: a partir do menu Inserir > Matriz..., com o atalho de teclado CTRL+M, a partir da paleta Matrizes (Matriz 3x3) ou inserindo a função mat(. Obtém-se o modelo 3x3 ou uma caixa de diálogo para indicar o número de linhas e colunas. Vamos atribuir ao nome de variável A uma matriz com as dimensões 3 (linhas) x 3 (colunas). Por exemplo, prima A: e depois CTRL+M. Aparece o modelo da matriz com 3x3 marcadores de posição vazios.

Se mudar de ideias quanto às dimensões, pode sempre alterar as dimensões da matriz. Basta clicar dentro da matriz, no canto inferior direito. Aparece um quadrado preto com uma linha vertical e uma horizontal. Com o botão esquerdo do rato (o ponteiro muda de aspeto), arraste e corrija as dimensões. É possível fazê-lo mesmo que os marcadores de posição não estejam vazios.

Vamos agora preencher os marcadores de posição como na imagem seguinte. Ao apontar para a matriz com o rato, aparece uma descrição. Esta é a representação simbólica da matriz. Como se vê, os números reais são apresentados como frações e existem também duas variáveis não definidas (a e b, sem valores numéricos).

Utilização: simbólico vs. numérico¶
Se atribuirmos valores às variáveis a e b antes da definição da matriz, o resultado seria:

Podemos apresentar o resultado da matriz A de forma simbólica (operador →) ou numérica (operador = ). Repare na diferença:

Extração de elementos¶
Um elemento individual da matriz também pode ser apresentado com a função el. Prima el(A, ou A[. Verá:

Atribuição de valores aos elementos¶
Agora pode inserir um único inteiro (vetor) ou dois inteiros (matriz) para aceder aos elementos do vetor ou da matriz. Aqui (matriz), prima 3,1→ ou 3,1= . Aparece o valor de A na terceira linha e na primeira coluna (o índice mínimo de linha e de coluna é 1).

Vetores¶
O SMath considera uma matriz coluna como um vetor. Os elementos de um vetor só precisam de um índice. Eis o exemplo (as matrizes linha continuam a precisar de dois índices, sendo o primeiro 1).

Avançado¶
Note-se que os elementos de uma matriz podem ser de diferentes tipos de dados (numéricos, texto, unidades). Seguem-se alguns exemplos simples que demonstram esta funcionalidade.

Repare na utilização das funções row e col para extrair uma única linha ou uma única coluna.
O SMath também suporta matrizes aninhadas, ou seja, um elemento de uma matriz pode ser também uma matriz. Veja o exemplo seguinte.

Os elementos individuais são apresentados da mesma forma que antes.

No SMath, as matrizes são arrays dinâmicos e podem alterar as suas dimensões. Por exemplo, a função matrix devolve uma matriz preenchida com zeros. Veja como se pode obter o mesmo atribuindo o valor zero ao elemento z3 4.

Experimente agora escrever, por exemplo, z5 5:=2
Além das variáveis de matriz/vetor, existem também funções de matriz/vetor.

A função f tem um único argumento e devolve um vetor de três elementos. O argumento pode ser um escalar, um vetor ou uma matriz. Experimente. A função ff espera um vetor de dois elementos e a função F espera dois argumentos e devolve uma matriz 2x2. Explore-as.
Ao trabalhar com matrizes, embora existam muitos operadores e funções de matrizes e vetores, mais cedo ou mais tarde acabam por ser necessários ciclos. Os mais utilizados são ciclos for simples, duplos ou aninhados. Veja este exemplo simples:

É possível inicializar uma matriz vazia com dimensões fixas utilizando matrix(rows,cols) e definindo um dos dois argumentos como 0.

Esta página baseia-se num artigo da antiga wiki, escrito por Davide Carpi.