Sistemas de Controle  0.5
Biblioteca matematica de Controle
Métodos Públicos | Métodos Privados | Atributos Privados | Amigas | Lista de todos os Membros
Referência da Template de Classe Matrix< UsedType >

Classe Matriz, com o intuito de realizar operações entre matrizes entre outras funções. Mais...

#include <matrix.h>

Diagrama de colaboração para Matrix< UsedType >:
Collaboration graph

Métodos Públicos

 Matrix ()
 Construtor padrão da classe. Mais...
 
 Matrix (string value)
 Construtor que recebe como parâmetro uma string. Mais...
 
 Matrix (int row, int col)
 Construtor que recebe como parâmetros o número de linhas e colunas. Mais...
 
 Matrix (const Matrix &otherMatrix)
 Construtor de cópia da classe. Mais...
 
 ~Matrix ()
 Destrutor padrão da classe. Mais...
 
void init (int row, int col)
 Método de inicialização da matriz. Mais...
 
void init (string value)
 Método de inicialização da matriz tomando um valor de string como entrada. Mais...
 
void add (int rol, int col, UsedType number)
 Método inserir valores em uma determinada posição da matriz. Mais...
 
void eye (int num)
 Método para criar uma matriz identidade (Matriz com 1 nos elementos da diagonal principal). Mais...
 
void ones (int row, int col)
 Cria uma matriz preenchida com o valor 1 em todos os seus elementos. Mais...
 
void zeros (int row, int col)
 Cria uma matriz de zeros. Mais...
 
void randU (int row, int col)
 Cria uma matriz preenchida com valores aleatórios do tamanho desejado. Mais...
 
int length ()
 Retorna o maior tamanho entre as linhas e colunas. Mais...
 
UsedType max ()
 Retorna o elemento da matriz de maior valor numérico. Mais...
 
UsedType min ()
 Retorna o elemento da matriz de menor valor numérico. Mais...
 
Matrix Avarage ()
 Calcula a média dos elementos da matriz. Mais...
 
Matrix Variance ()
 Calcula a variância dos elementos de uma matriz. Mais...
 
Matrix Std ()
 Calcula o desvio padrão da matriz. Mais...
 
void print ()
 Exibe a matriz. Mais...
 
Matrix operator+ (Matrix Mat1)
 Sobrecarga do operador + para a soma entre matrizes. Mais...
 
Matrix operator+ (UsedType a)
 Sobrecarga do operador + para a soma entre matriz e escalar. Mais...
 
Matrix operator- (Matrix Mat1)
 Sobrecarga do operador - para a subtração entre matrizes. Mais...
 
Matrix operator- (UsedType a)
 Sobrecarga do operador - para a subtração entre matriz e escalar. Mais...
 
void operator= (Matrix Mat1)
 Operador de atribuição entre matrizes. Mais...
 
void operator= (string value)
 Operador de atribuição entre matriz e string. Mais...
 
Matrix operator* (Matrix Mat1)
 Operador de multiplicação entre matrizes. Mais...
 
Matrix operator* (UsedType a)
 Operador de multiplicação entre matriz e escalar. Mais...
 
Matrix operator/ (Matrix Mat1)
 Sobrecarga do operador / para "divisão" entre matrizes. Mais...
 
Matrix operator/ (UsedType a)
 Operador de divisão entre matriz e escalar. Mais...
 
Matrix operator| (Matrix Mat1)
 Sobrecarga do operador | para realizar a concatenação de matrizes (adicionando às colunas). Mais...
 
Matrix operator|| (Matrix Mat1)
 Sobrecarga do operador || para realizar a concatenação de matrizes (adicionando às linhas). Mais...
 
Matrix operator~ ()
 Sobrecarga do operador ~ para obter a transposta da matriz. Mais...
 
Matrix operator^ (UsedType exp)
 Sobrecarga do operador ^ para obter a potenciação de matrizes. Mais...
 
Matrix operator> (UsedType num)
 Sobrecarga do operador > para obter a potenciação dos elementos da matriz. Mais...
 
UsedType operator() (int row, int col)
 Sobrecarga do operador () para acessar os elementos da matriz. Mais...
 
void operator() (int row, int col, UsedType value)
 Sobrecarga do operador () para inserir elementos em uma matriz. Mais...
 
void lineVector (int left, int rigth)
 Cria um vetor linha de elementos crescentes. Mais...
 
UsedType trace ()
 Calcula o traço da matriz. Mais...
 
Matrix inv ()
 Calcula a matriz inversa. Mais...
 
Matrix pol ()
 Encontra o polinômio característico da matriz. Mais...
 
Matrix eigenvalues ()
 Calcula os autovalores da matriz. Mais...
 
UsedType det ()
 Calcula o determinante da matriz. Mais...
 
int getRows ()
 Retorna o número de linhas da matriz. Mais...
 
int getCols ()
 Retorna o número de colunas da matriz. Mais...
 
void setLine (int num, Matrix< UsedType > Line)
 Inserir em uma matriz uma linha inteira em uma matriz. Mais...
 
void setColumn (int num, Matrix< UsedType > Colummn)
 Inserir em uma matriz uma coluna inteira em uma matriz. Mais...
 
Matrix< UsedType > getLine (int num)
 Obter uma linha inteira de uma matriz. Mais...
 
Matrix< UsedType > getColumn (int num)
 Obter uma coluna inteira de uma matriz. Mais...
 
UsedType getMat (int row, int col)
 
void setMat (int row, int col, UsedType num)
 

Métodos Privados

bool sqr (Matrix< UsedType > Mat1)
 Ponteiro duplo aonde serão armazenados os dados da Matriz. Mais...
 
bool ind (Matrix< UsedType > Mat1)
 Função de verificação interna da matriz. Mais...
 

Atributos Privados

int rows
 
int cols
 Membro que armazena o número de linhas da Matriz. Mais...
 
UsedType ** Mat
 Membro que armazena o número de colunas da Matriz. Mais...
 

Amigas

template<class FriendType >
Matrix< FriendType > operator- (FriendType a, Matrix< FriendType > Mat1)
 
template<class FriendType >
Matrix< FriendType > operator- (FriendType a, Matrix< FriendType > Mat1)
 
template<class FriendType >
Matrix< FriendType > operator* (FriendType a, Matrix< FriendType > Mat1)
 
template<class FriendType >
Matrix< FriendType > operator/ (FriendType a, Matrix< FriendType > Mat1)
 
template<class FriendType >
Matrix< FriendType > diff (Matrix< FriendType > M, FriendType h)
 
template<class FriendType >
FriendType max (Matrix< FriendType > M)
 
template<class FriendType >
FriendType min (Matrix< FriendType > M)
 
template<class FriendType >
FriendType norm (Matrix< FriendType > M)
 
template<class FriendType >
Matrix< FriendType > abs (Matrix< FriendType > M)
 
template<class FriendType >
Matrix< FriendType > cos (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > sin (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > tan (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > acos (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > asin (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > atan (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > cosh (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > sinh (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > tanh (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > acosh (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > asinh (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > atanh (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > exp (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > log (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > log10 (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > ceil (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > round (Matrix< FriendType > M1)
 
template<class FriendType >
Matrix< FriendType > floor (Matrix< FriendType > M1)
 

Descrição Detalhada

template<class UsedType>
class Matrix< UsedType >

Classe Matriz, com o intuito de realizar operações entre matrizes entre outras funções.

Biblioteca que gerencia matrizes, tais como as suas operações e propriedades.

Definição na linha 23 do arquivo matrix.h.

Construtores & Destrutores

template<class UsedType>
Matrix< UsedType >::Matrix ( )

Construtor padrão da classe.

Instancia o objeto da classe Matrix com os elementos em 0.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A; //Instancia com linhas e colunas iguais a zero
A.print();
return 0;
}

Resultado:

Obs: Não mostra nada na tela

template<class UsedType>
Matrix< UsedType >::Matrix ( string  value)

Construtor que recebe como parâmetro uma string.

Instancia o objeto da classe Matrix convertendo uma string de valores numéricos em elementos para a matriz.

Parâmetros
valueCadeia de caracteres que define a matriz.

Os elementos devem obedecer o seguinte critério:
A vírgula "," é utilizada para separar os elementos de uma linha em colunas
O ponto e vírgula ";" é utilizado para quebrar a linha da matriz
Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n
template<class UsedType>
Matrix< UsedType >::Matrix ( int  row,
int  col 
)

Construtor que recebe como parâmetros o número de linhas e colunas.

Inicializa a matriz com o número corresponde de linhas e colunas, e com todos os elementos em 0.

Parâmetros
rowNúmero de linhas da matriz.
colNúmero de colunas da matriz.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A(3,3); //Instancia com linhas e colunas iguais a zero
A.print();
return 0;
}
    Resultado:

     0.000  0.000  0.000\n
     0.000  0.000  0.000\n
     0.000  0.000  0.000\n
template<class UsedType>
Matrix< UsedType >::Matrix ( const Matrix< UsedType > &  otherMatrix)

Construtor de cópia da classe.

Construtor de cópia da classe, gerencia as aplicações de memória da classe

Parâmetros
otherMatrixRecebe como parâmetro uma cópia da matriz.

OBS: Este construtor não tem exemplo associado. Funciona implícitamente.

template<class UsedType>
Matrix< UsedType >::~Matrix ( )

Destrutor padrão da classe.

Libera todas as memórias alocadas durante a execução de objetos da classe.
OBS: Este Destrutor não tem exemplo associado. Funciona implícitamente.

Métodos

template<class UsedType>
void Matrix< UsedType >::add ( int  rol,
int  col,
UsedType  number 
)

Método inserir valores em uma determinada posição da matriz.

Recebe como parâmetro de entrada a posição da matriz e insere um determinado elemento.

Parâmetros
rolLinha a ser inserido o valor.
colLinha a ser inserido o valor.
numberValor a ser inserido.

Ex:

int main(int argc, char *argv)
{
A.add(1,1,1);
A.add(1,2,2);
A.add(1,2,3);
A.add(2,1,4);
A.add(2,2,5);
A.add(2,3,6);
A.add(3,1,7);
A.add(3,2,8);
A.add(3,3,9);
A.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n
template<class UsedType>
Matrix Matrix< UsedType >::Avarage ( )

Calcula a média dos elementos da matriz.

Considera uma matriz como uma amostra, retirando a média aritmética das linhas da matriz.

template<class UsedType>
UsedType Matrix< UsedType >::det ( )

Calcula o determinante da matriz.

Calcula o determinante da matriz dada e devolve um escalar que simboliza esse determinante.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;0,5,6;7,1,9");
A.print();
std::cout << A.det() << std::endl;
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     0.000  5.000  6.000\n
     7.000  1.000  9.000\n

     -0.000175765\n

    Ver também:
template<class UsedType>
Matrix Matrix< UsedType >::eigenvalues ( )

Calcula os autovalores da matriz.

Calcula os autovalores da matriz dada e devolve um vetor (matriz) que representam os autovalores (desordenados).

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;0,5,6;7,1,9");
A.print();
(A.eigenvalues()).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     0.000  5.000  6.000\n
     7.000  1.000  9.000\n

    12.714  1.000 1.286\n

    Ver também:
template<class UsedType>
void Matrix< UsedType >::eye ( int  num)

Método para criar uma matriz identidade (Matriz com 1 nos elementos da diagonal principal).

Cria uma matriz identidade quadrada.

Parâmetros
numNúmero corresponde a dimensão da matriz identidade (Matriz quadrada).

Ex:

int main(int argc, char *argv)
{
A.eye(3);
A.print();
return 0;
}
    Resultado:

     1.000  0.000  0.000\n
     0.000  1.000  0.000\n
     0.000  0.000  1.000\n
template<class UsedType>
int Matrix< UsedType >::getCols ( )

Retorna o número de colunas da matriz.

A responsabilidade desta função é permitir o acesso (obter) a variável cols da classe, ou seja, saber qual o número de colunas que a matriz tem.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
std::cout << A.getCols() << std::endl;
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     3\n

    Ver também: \sa int getRows()
template<class UsedType>
Matrix<UsedType> Matrix< UsedType >::getColumn ( int  num)

Obter uma coluna inteira de uma matriz.

A responsabilidade desta função é permitir a obtenção de uma coluna inteira de uma matriz.

Parâmetros
numÉ a coluna que será obtida da matriz

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
(A.getColumn(2)).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     2.000\n
     5.000\n
     8.000\n

    Ver também: \sa Matrix<UsedType> getLine(int num)
template<class UsedType>
Matrix<UsedType> Matrix< UsedType >::getLine ( int  num)

Obter uma linha inteira de uma matriz.

A responsabilidade desta função é permitir a obtenção de uma linha inteira de uma matriz.

Parâmetros
numÉ a linha que será obtida da matriz

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
(A.getLine(2)).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     4.000  5.000  6.000\n

    Ver também: \sa Matrix<UsedType> getColumn(int num)
template<class UsedType>
UsedType Matrix< UsedType >::getMat ( int  row,
int  col 
)
template<class UsedType>
int Matrix< UsedType >::getRows ( )

Retorna o número de linhas da matriz.

A responsabilidade desta função é permitir o acesso (obter) a variável rows da classe, ou seja, saber qual o número de linhas que a matriz tem.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
std::cout << A.getRows() << std::endl;
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     3\n

    Ver também: \sa int getCols()
template<class UsedType>
bool Matrix< UsedType >::ind ( Matrix< UsedType >  Mat1)
private

Função de verificação interna da matriz.

A função verifica se a matriz é identidade.

Parâmetros
Mat1Matriz de entrada a se verificar se é identidade.
template<class UsedType>
void Matrix< UsedType >::init ( int  row,
int  col 
)

Método de inicialização da matriz.

Inicializa a matriz com o respectivo número de linhas e colunas.

Parâmetros
rowNúmero de linhas da matriz.
colNúmero de colunas da matriz.

Ex:

int main(int argc, char *argv)
{
A.init(3,3);
A.print();
return 0;
}
    Resultado:

     0.000  0.000  0.000\n
     0.000  0.000  0.000\n
     0.000  0.000  0.000\n
template<class UsedType>
void Matrix< UsedType >::init ( string  value)

Método de inicialização da matriz tomando um valor de string como entrada.

Inicializa a matriz com uma determinada cadeia de caracteres dada como entrada.

Parâmetros
valueCadeia de caracteres que define a matriz.

Os elementos devem obedecer o seguinte critério:
A vírgula "," é utilizada para separar os elementos de uma linha em colunas
O ponto e vírgula ";" é utilizado para quebrar a linha da matriz
Ex:

int main(int argc, char *argv)
{
A.init("1,2,3;4,5,6;7,8,9");
A.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n
template<class UsedType>
Matrix Matrix< UsedType >::inv ( )

Calcula a matriz inversa.

Calcula a inversa da matriz dada.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;0,5,6;7,1,9");
A.print();
(A.inv()).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     0.000  5.000  6.000\n
     7.000  1.000  9.000\n

     2.167 -0.833  -0.167\n
     2.333 -0.667  -0.333\n
    -1.944  0.722   0.278\n

    Ver também:
template<class UsedType>
int Matrix< UsedType >::length ( )

Retorna o maior tamanho entre as linhas e colunas.

Este método verifica os valores de rows e cols da matriz e retorna o maior valor entre os dois.

Obs: A função não recebe parâmetros de entrada

Ex:

int main(int argc, char *argv)
{
std::cout << A.length() << std::endl;
return 0;
}
    Resultado:

     9\n
template<class UsedType>
void Matrix< UsedType >::lineVector ( int  left,
int  rigth 
)

Cria um vetor linha de elementos crescentes.

Recebe um intervalo e cria um vetor contando do intervalo menor até o maior de um em um.

Parâmetros
leftlimite inferior do vetor.
rigthlimite superior do vetor.

Obs: Lembrando que o elemento da primeira posição é o que tem linha 1 e coluna 1, também.

Ex:

int main(int argc, char *argv)
{
A.lineVector(10,15);
A.print();
return 0;
}
    Resultado:

     10.000  11.000  12.000  13.000  14.000  15.000\n

    Ver também:
template<class UsedType>
UsedType Matrix< UsedType >::max ( )

Retorna o elemento da matriz de maior valor numérico.

Este método realiza uma busca interna na matriz pelo maior valor existente nela.

Obs: A função não recebe parâmetros de entrada

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
std::cout << A.max() << std::endl;
return 0;
}
    Resultado:

     9\n
template<class UsedType>
UsedType Matrix< UsedType >::min ( )

Retorna o elemento da matriz de menor valor numérico.

Este método realiza uma busca interna na matriz pelo menor valor existente nela.

Obs: A função não recebe parâmetros de entrada

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
std::cout << A.min() << std::endl;
return 0;
}
    Resultado:

     1\n
template<class UsedType>
void Matrix< UsedType >::ones ( int  row,
int  col 
)

Cria uma matriz preenchida com o valor 1 em todos os seus elementos.

Recebe como parâmetros a dimensão da matriz, e cria uma matriz totalmente preenchida com o número 1.

Parâmetros
rowNúmero de linhas da matriz.
colNúmero de colunas da matriz.

Ex:

int main(int argc, char *argv)
{
A.ones(3,3);
A.print();
return 0;
}
    Resultado:

     1.000  1.000  1.000\n
     1.000  1.000  1.000\n
     1.000  1.000  1.000\n
template<class UsedType>
UsedType Matrix< UsedType >::operator() ( int  row,
int  col 
)

Sobrecarga do operador () para acessar os elementos da matriz.

O operador () foi sobrecarregado de tal forma a simplificar o acesso aos elementos internos de uma matriz. A partir da indicação da linha e coluna (parâmetros que são recebidos) o resultado da operação será o elemento da matriz que se encontra naquela posição.

Parâmetros
rowLinha do elemento.
colColuna do elemento.

Obs: Lembrando que o elemento da primeira posição é o que tem linha 1 e coluna 1, também.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
std::cout << A(1,1) << std::endl;
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     1\n

    Ver também: \sa Matrix operator* (Matrix Mat1) \sa Matrix operator^ (Matrix Mat1)
template<class UsedType>
void Matrix< UsedType >::operator() ( int  row,
int  col,
UsedType  value 
)

Sobrecarga do operador () para inserir elementos em uma matriz.

O operador () foi sobrecarregado de tal forma a simplificar a inserção de elementos em uma matriz. A partir da indicação da linha e coluna (parâmetros que são recebidos) um novo elemento pode ser inserido (na posição determinada).

Parâmetros
rolLinha do elemento.
colColuna do elemento.
valueValor a ser inserido na linha e coluna especificada

Obs: Lembrando que o elemento da primeira posição é o que tem linha 1 e coluna 1, também.

Ex:

int main(int argc, char *argv)
{
A(1,1,1);
A(1,2,2);
A(1,3,3);
A(2,1,4);
A(2,2,5);
A(2,3,6);
A(3,1,7);
A(3,2,8);
A(3,3,9);
A.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

    Ver também: \sa void add(int rol, int col, UsedType number)
template<class UsedType>
Matrix Matrix< UsedType >::operator* ( Matrix< UsedType >  Mat1)

Operador de multiplicação entre matrizes.

O método é uma sobrecarga do operador *. Ele permite que a operação de multiplicação entre matrizes seja simplificada. O método realiza a multiplicação entre duas matrizes que estão a esquerda e a direita do operador *.

Parâmetros
Mat1É uma matriz qualquer a direita do operador *.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
B.eye(A.length());
A.print();
B.print();
(A*B).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     1.000  0.000  0.000\n
     0.000  1.000  0.000\n
     0.000  0.000  1.000\n

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     Ver também: \sa Matrix(string value), \sa Matrix()
template<class UsedType>
Matrix Matrix< UsedType >::operator* ( UsedType  a)

Operador de multiplicação entre matriz e escalar.

O método é uma sobrecarga do operador *. Ele permite que a operação de multiplicação entre matriz e escalar seja simplificada. O método realiza a multiplicação entre uma matriz que está a esquerda e um escalar a direita do operador *.

Parâmetros
aÉ um escalar qualquer a direita do operador *.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
B = A*2;
A.print();
B.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     2.000  4.000  6.000\n
     8.000 10.000 12.000\n
    14.000 16.000 18.000\n

     Ver também: \sa Matrix(string value), \sa Matrix()
template<class UsedType>
Matrix Matrix< UsedType >::operator+ ( Matrix< UsedType >  Mat1)

Sobrecarga do operador + para a soma entre matrizes.

O método é uma sobrecarga do operador +. Ele permite que a operação de soma entre matrizes seja simplificada. O método realiza a soma de uma matriz que está à esquerda (this) e uma à direita (Mat1) do operador +.

Parâmetros
Mat1Matriz a ser somada com a matriz this.

Obs: Para que a soma entre as matrizes seja realizada de maneira adequada, ambas as matrizes devem possuir a mesma quantidade de linhas e colunas.
Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
Matrix<double> B("3,2,1;6,5,4;9,8,7");
A.print();
B.print();
(A+B).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     3.000  2.000  1.000\n
     6.000  5.000  4.000\n
     9.000  8.000  7.000\n

     4.000  4.000  4.000\n
    10.000 10.000 10.000\n
    16.000 16.000 16.000\n
template<class UsedType>
Matrix Matrix< UsedType >::operator+ ( UsedType  a)

Sobrecarga do operador + para a soma entre matriz e escalar.

O método é uma sobrecarga do operador +. Ele permite que a operação de soma entre matriz e escalar seja simplificada. O método realiza a soma de uma matriz que está à esquerda (this) e um escalar à direita (a) do operador +.

Parâmetros
aescalar (número) a ser somado com a matriz this.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
(A+3).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     4.000  5.000  6.000\n
     7.000  8.000  9.000\n
    10.000 11.000 12.000\n
template<class UsedType>
Matrix Matrix< UsedType >::operator- ( Matrix< UsedType >  Mat1)

Sobrecarga do operador - para a subtração entre matrizes.

O método é uma sobrecarga do operador -. Ele permite que a operação de subtração entre matrizes seja simplificada. O método realiza a subtração de uma matriz que está à esquerda (this) e uma à direita (Mat1) do operador +.

Parâmetros
Mat1Matriz a ser subtraída com a matriz this.

Obs: Para que a subtração entre as matrizes seja realizada de maneira adequada, ambas as matrizes devem possuir a mesma quantidade de linhas e colunas.
Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
Matrix<double> B("3,2,1;6,5,4;9,8,7");
A.print();
B.print();
(A-B).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     3.000  2.000  1.000\n
     6.000  5.000  4.000\n
     9.000  8.000  7.000\n

     -2.000  0.000  2.000\n
     -2.000  0.000  2.000\n
     -2.000  0.000  2.000\n
template<class UsedType>
Matrix Matrix< UsedType >::operator- ( UsedType  a)

Sobrecarga do operador - para a subtração entre matriz e escalar.

O método é uma sobrecarga do operador -. Ele permite que a operação de subtração entre matriz e escalar seja simplificada. O método realiza a subtração de uma matriz que está à esquerda (this) e um escalar à direita (a) do operador -.

Parâmetros
aescalar (número) a ser subtraído com a matriz this.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
(A-3).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

    -2.000 -1.000  0.000\n
     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
template<class UsedType>
Matrix Matrix< UsedType >::operator/ ( Matrix< UsedType >  Mat1)

Sobrecarga do operador / para "divisão" entre matrizes.

A "divisão" matricial equivale a multiplicação com uma das matrizes (a direita do operador /) invertida (matriz^-1).

Parâmetros
Mat1É a matriz que será invertida (à direita do oprador /) para depois ser multiplicada pela matriz que está a esquerda do operador /.

Obs: Uma matriz vezes a sua inversa resulta na matriz identidade.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,0,3;4,5,6;1,8,9");
A.print();
(A/A).print();
return 0;
}
    Resultado:

     1.000  0.000  3.000\n
     4.000  5.000  6.000\n
     1.000  8.000  9.000\n

     1.000  0.000  0.000\n
     0.000  1.000  0.000\n
     0.000  0.000  1.000\n

    Ver também: \sa Matrix inv()
template<class UsedType>
Matrix Matrix< UsedType >::operator/ ( UsedType  a)

Operador de divisão entre matriz e escalar.

O método é uma sobrecarga do operador /. Ele permite que a operação de divisão entre matriz e escalar seja simplificada. O método realiza a divisão entre uma matriz que está a esquerda e um escalar a direita do operador /.

Parâmetros
aÉ um escalar qualquer a direita do operador /.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("2,4,6;8,10,12;14,16,18");
B = A/2;
A.print();
B.print();
return 0;
}
    Resultado:

     2.000  4.000  6.000\n
     8.000 10.000 12.000\n
    14.000 16.000 18.000\n

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n


     Ver também: \sa Matrix(string value), \sa Matrix()
template<class UsedType>
void Matrix< UsedType >::operator= ( Matrix< UsedType >  Mat1)

Operador de atribuição entre matrizes.

O método é uma sobrecarga do operador =. Ele permite que a operação de atribuição entre matrizes seja realizada sem que haja a cópia do ponteiro da matriz à direita. O método cria um espaço de memória na matriz à esquerda da igualdade do mesmo tamanho da do lado direito e, após, cópia os valores para a matriz à esquerda.

Parâmetros
Mat1é uma matriz qualquer que está do lado direito da igualdade.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
B = A;
A.print();
B.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n
template<class UsedType>
void Matrix< UsedType >::operator= ( string  value)

Operador de atribuição entre matriz e string.

O método é uma sobrecarga do operador =. Ele permite que a operação de atribuição entre matriz e string seja simplificada. O método cria um espaço de memória na matriz à esquerda da igualdade, converte a string à direita da igualdade, converte-a em uma matriz e coloca os seus valores na matriz à esquerda da igualdade.

Parâmetros
valueé uma string qualquer que está do lado direito da igualdade.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
B = A;
A.print();
B.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     Ver também: \sa void init(string value), \sa Matrix(string value)
template<class UsedType>
Matrix Matrix< UsedType >::operator> ( UsedType  num)

Sobrecarga do operador > para obter a potenciação dos elementos da matriz.

O operador > foi sobrecarregado de tal forma a simplificar a operação de potenciação dos elementos internos de uma matriz.

Parâmetros
expExpoente que indica a potência de cada elemento interno da matriz.

Ex:

int main(int argc, char *argv)
{
A.ones(3,3);
A = A*3;
A.print();
(A>2).print();
return 0;
}
    Resultado:

     3.000  3.000  3.000\n
     3.000  3.000  3.000\n
     3.000  3.000  3.000\n

     9.000  9.000  9.000\n
     9.000  9.000  9.000\n
     9.000  9.000  9.000\n

    Ver também: \sa Matrix operator* (Matrix Mat1), \sa Matrix operator> (Matrix Mat1)
template<class UsedType>
Matrix Matrix< UsedType >::operator^ ( UsedType  exp)

Sobrecarga do operador ^ para obter a potenciação de matrizes.

O operador ^ foi sobrecarregado de tal forma a simplificar a operação de potenciação de matrizes, dada uma matriz e um escalar (à esquerda e à direita do operador ^ respectivamente).

Parâmetros
expExpoente cujo módulo significa a quantidade de vezes que a multiplicação entre a matriz com ela mesma será repetida. Caso o expoente seja negativo o programa primeiramente invertará a matriz para depois realizar a potenciação.

Ex:

int main(int argc, char *argv)
{
A.eye(3);
A = A*3;
A.print();
(A^3).print();
return 0;
}
    Resultado:

     3.000  0.000  0.000\n
     0.000  3.000  0.000\n
     0.000  0.000  3.000\n

    27.000  0.000  0.000\n
     0.000 27.000  0.000\n
     0.000  0.000 27.000\n

    Ver também: \sa Matrix operator* (Matrix Mat1)
template<class UsedType>
Matrix Matrix< UsedType >::operator| ( Matrix< UsedType >  Mat1)

Sobrecarga do operador | para realizar a concatenação de matrizes (adicionando às colunas).

O operador | foi sobrecarregado de tal forma que concatena duas matrizes (a direita e a esquerda do operador | ) retornando como resultado uma matriz (formada pela junção das duas matrizas, colocando uma ao lado da outra).

Parâmetros
Mat1Matriz a ser concatenada juntamente com a matriz à direita do operador || para formar uma nova matriz.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
Matrix<double> B("4;7;10");
A.print();
B.print();
(A|B).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     4.000\n
     7.000\n
    10.000\n

     1.000  2.000  3.000  4.000\n
     4.000  5.000  6.000  7.000\n
     7.000  8.000  9.000 10.000\n

    Ver também: \sa Matrix operator|| (Matrix Mat1)
template<class UsedType>
Matrix Matrix< UsedType >::operator|| ( Matrix< UsedType >  Mat1)

Sobrecarga do operador || para realizar a concatenação de matrizes (adicionando às linhas).

O operador || foi sobrecarregado de tal forma que concatena duas matrizes (a direita e a esquerda do operador || ) retornando como resultado uma matriz (formada pela junção das duas matrizas, colocando uma abaixo da outra).

Parâmetros
Mat1Matriz a ser concatenada juntamente com a matriz à direita do operador || para formar uma nova matriz.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
Matrix<double> B("10,11,12");
A.print();
B.print();
(A||B).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

    10.000 11.000 12.000\n

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n
    10.000 11.000 12.000\n

    Ver também: \sa Matrix operator| (Matrix Mat1)
template<class UsedType>
Matrix Matrix< UsedType >::operator~ ( )

Sobrecarga do operador ~ para obter a transposta da matriz.

O operador ~ foi sobrecarregado de tal forma que retorna a transposta da matriz em que ele está a esquerda.

Obs: O método não requer parâmetro de entrada (exceto a matriz que estará localizada à direita do operador ~)

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("4;7;10");
A.print();
(~A).print();
return 0;
}
    Resultado:

     4.000\n
     7.000\n
    10.000\n

    10.000 11.000 12.000\n

    Ver também: \sa Matrix operator* (Matrix Mat1)
template<class UsedType>
Matrix Matrix< UsedType >::pol ( )

Encontra o polinômio característico da matriz.

Calcula o polinômio característico da matriz dada e devolve os índices do polinômio. O vetor resultante representa o polinômio característico onde o último elemtento é a constante e o primeiro multiplica $ x^{n-1} $.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;0,5,6;7,1,9");
A.print();
(A.pol()).print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     0.000  5.000  6.000\n
     7.000  1.000  9.000\n

    -1.000  15.000 -32.000 18.000\n

    Ver também:
template<class UsedType>
void Matrix< UsedType >::print ( )

Exibe a matriz.

Este método apresenta na tela todos os valores da matriz de maneira ordenada.

Obs: Para que seja apresentado algum valor o usuário deverá utilizar algum dos métodos de preenchimento de matrizes
Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n
template<class UsedType>
void Matrix< UsedType >::randU ( int  row,
int  col 
)

Cria uma matriz preenchida com valores aleatórios do tamanho desejado.

Recebe como parâmetros a dimensão da matriz, e cria uma matriz preeenchida com números aleatórios com distribuição uniforme (utiliza a função rand do próprio c).

Parâmetros
rowNúmero de linhas da matriz.
colNúmero de colunas da matriz.

Obs: Os números gerados na matriz estarão em uma faixa entre 0 e 1
Ex:

int main(int argc, char *argv)
{
A.randU(3,3);
A.print();
return 0;
}
    Possível resultado:

     0.485  0.189  0.195\n
     0.350  0.284  0.023\n
     0.463  0.848  0.048\n
template<class UsedType>
void Matrix< UsedType >::setColumn ( int  num,
Matrix< UsedType >  Colummn 
)

Inserir em uma matriz uma coluna inteira em uma matriz.

A responsabilidade desta função é permitir a inserção de uma coluna inteira em uma matriz.

Parâmetros
numÉ a coluna que será alterada na matriz de destino
Colummné a coluna que será inserida na matriz

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
Matrix<double> B("1;2;3");
A.print();
A.setColumn(2,B);
A.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     1.000  1.000  3.000\n
     4.000  2.000  6.000\n
     7.000  3.000  9.000\n

    Ver também: \sa void setLine(int num, Matrix<UsedType> Line)
template<class UsedType>
void Matrix< UsedType >::setLine ( int  num,
Matrix< UsedType >  Line 
)

Inserir em uma matriz uma linha inteira em uma matriz.

A responsabilidade desta função é permitir a inserção de uma linha inteira em uma matriz.

Parâmetros
numÉ a linha que será alterada na matriz de destino
Lineé a linha que será inserida na matriz

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
Matrix<double> B("1,2,3");
A.print();
A.setLine(2,B);
A.print();
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     1.000  2.000  3.000\n
     1.000  2.000  3.000\n
     7.000  8.000  9.000\n

    Ver também: \sa void setColumn(int num, Matrix<UsedType> Colummn)
template<class UsedType>
void Matrix< UsedType >::setMat ( int  row,
int  col,
UsedType  num 
)
template<class UsedType>
bool Matrix< UsedType >::sqr ( Matrix< UsedType >  Mat1)
private

Ponteiro duplo aonde serão armazenados os dados da Matriz.

Função de verificação a interna das dimensões da matriz.

A função verifica se a matriz é quadrada ou não.

Parâmetros
Mat1Matriz de entrada a se verificar as dimensões.
template<class UsedType>
Matrix Matrix< UsedType >::Std ( )

Calcula o desvio padrão da matriz.

Retorna o desvio padrão de uma matriz.

template<class UsedType>
UsedType Matrix< UsedType >::trace ( )

Calcula o traço da matriz.

Calcula o traço da matriz, ou seja, a soma de todos os elementos da diagonal principal.

Ex:

int main(int argc, char *argv)
{
Matrix<double> A("1,2,3;4,5,6;7,8,9");
A.print();
std::cout << A.trace() << std::endl;
return 0;
}
    Resultado:

     1.000  2.000  3.000\n
     4.000  5.000  6.000\n
     7.000  8.000  9.000\n

     15\n

    Ver também:
template<class UsedType>
Matrix Matrix< UsedType >::Variance ( )

Calcula a variância dos elementos de uma matriz.

template<class UsedType>
void Matrix< UsedType >::zeros ( int  row,
int  col 
)

Cria uma matriz de zeros.

Recebe como parâmetros a dimensão da matriz, e cria uma matriz totalmente preeenchida com o número 0.

Parâmetros
rowNúmero de linhas da matriz.
colNúmero de colunas da matriz.

Ex:

int main(int argc, char *argv)
{
A.zeros(3,3);
A.print();
return 0;
}
    Resultado:

     0.000  0.000  0.000\n
     0.000  0.000  0.000\n
     0.000  0.000  0.000\n

Amigas e Funções Relacionadas

template<class UsedType>
template<class FriendType >
Matrix<FriendType> abs ( Matrix< FriendType >  M)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> acos ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> acosh ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> asin ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> asinh ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> atan ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> atanh ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> ceil ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> cos ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> cosh ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> diff ( Matrix< FriendType >  M,
FriendType  h 
)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> exp ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> floor ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> log ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> log10 ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
FriendType max ( Matrix< FriendType >  M)
friend
template<class UsedType>
template<class FriendType >
FriendType min ( Matrix< FriendType >  M)
friend
template<class UsedType>
template<class FriendType >
FriendType norm ( Matrix< FriendType >  M)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> operator* ( FriendType  a,
Matrix< FriendType >  Mat1 
)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> operator- ( FriendType  a,
Matrix< FriendType >  Mat1 
)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> operator- ( FriendType  a,
Matrix< FriendType >  Mat1 
)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> operator/ ( FriendType  a,
Matrix< FriendType >  Mat1 
)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> round ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> sin ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> sinh ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> tan ( Matrix< FriendType >  M1)
friend
template<class UsedType>
template<class FriendType >
Matrix<FriendType> tanh ( Matrix< FriendType >  M1)
friend

Atributos

template<class UsedType>
int Matrix< UsedType >::cols
private

Membro que armazena o número de linhas da Matriz.

Definição na linha 28 do arquivo matrix.h.

template<class UsedType>
UsedType** Matrix< UsedType >::Mat
private

Membro que armazena o número de colunas da Matriz.

Definição na linha 29 do arquivo matrix.h.

template<class UsedType>
int Matrix< UsedType >::rows
private

Definição na linha 27 do arquivo matrix.h.


A documentação para esta classe foi gerada a partir do seguinte arquivo: