Skip to content

Commit

Permalink
Adicionado método subfatiar no Vectorization.Matrix e Vectorization.V…
Browse files Browse the repository at this point in the history
…ector, para permitir dividir eles em subgrupos menores.
  • Loading branch information
WilliamJardim committed Jan 1, 2025
1 parent f84760a commit 44baa11
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
37 changes: 37 additions & 0 deletions src/Matrix.js
Original file line number Diff line number Diff line change
Expand Up @@ -831,6 +831,43 @@ window.Vectorization.Matrix = function( config, classConfig={} ){
}
}

/**
* Subfatiar esta matriz em varias partes, cada uma com uma CERTA QUANTIDADE FIXA DE AMOSTRAS
*
* Agrupa sequencialmente amostras, de acordo com O TAMANHO DA FATIA , por exemplo, se for uma fatia de 7 amostras, então, ele vai dividir o dataset em subgrupos, cada um tendo 7 amostras cada.
* Ou seja, o dataset seria dividido de 7 em 7 amostras. Ou seja, cada fatia teria 7 amostras.
*
* NOTA: Cada parte vai ser uma nova Vectorization.Matrix, contendo Vectorization.Vector(s) dentro. Ou seja, cada Vectorization.Vector dentro dessa matrix resultado, vai ser uma amostra.
*
* @param {Number} tamanhoFatia - O tamanho das fatias(quantidade de amostras por fatia)
* @param {Number} iniciarEm - O indice que ele vai iniciar o fatiamento
*
* @returns { Array<Vectorization.Matrix> }
*/
context.subfatiar = function( tamanhoFatia, iniciarEm=0 ){
if(!tamanhoFatia){
throw 'Voce precisa definir uma quantidade de amostras para as fatias!';
}
if( tamanhoFatia > context.linhas ){
console.warn(`O tamanho de fatia ${tamanhoFatia} é maior do que a quantidade de linhas da matrix`);
}

let fatiasFeitas = [];
let indiceFinalFatia = (tamanhoFatia - iniciarEm);

for( let indiceAtual = iniciarEm ; indiceAtual < context.linhas ; indiceAtual += tamanhoFatia ){

const sliceAtual = context.clonar()
.slice( indiceAtual, indiceFinalFatia );

indiceFinalFatia = indiceFinalFatia + tamanhoFatia;

fatiasFeitas.push( sliceAtual );
}

return fatiasFeitas;
}

context.extrairValoresLinha = context.getLinha;

context._definirValorLinha = function(indice, indiceAdicionar, vetorDaLinha){
Expand Down
37 changes: 37 additions & 0 deletions src/Vector.js
Original file line number Diff line number Diff line change
Expand Up @@ -2344,6 +2344,43 @@ window.Vectorization.Vector = function( config=[], classConfig={} ){
return vetorResultado;
}

/**
* Subfatiar este Vector em varias partes, cada uma com uma CERTA QUANTIDADE FIXA DE ELEMENTOS
*
* Agrupa sequencialmente os números, de acordo com O TAMANHO DA FATIA , por exemplo, se for uma fatia de 7 números, então, ele vai dividir o Vector em subgrupos, cada um tendo 7 números cada.
* Ou seja, o Vector seria dividido de 7 em 7 números. Ou seja, cada fatia teria 7 números.
*
* NOTA: Cada parte vai ser um novo Vectorization.Vector, contendo números dentro.
*
* @param {Number} tamanhoFatia - O tamanho das fatias(quantidade de números por fatia)
* @param {Number} iniciarEm - O indice que ele vai iniciar o fatiamento
*
* @returns { Array<Vectorization.Vector> }
*/
context.subfatiar = function( tamanhoFatia, iniciarEm=0 ){
if(!tamanhoFatia){
throw 'Voce precisa definir uma quantidade de números para as fatias!';
}
if( tamanhoFatia > context.length ){
console.warn(`O tamanho de fatia ${tamanhoFatia} é maior do que a quantidade de números deste Vector`);
}

let fatiasFeitas = [];
let indiceFinalFatia = (tamanhoFatia - iniciarEm);;

for( let indiceAtual = iniciarEm ; indiceAtual < context.length ; indiceAtual += tamanhoFatia ){

const sliceAtual = context.clonar()
.slice( indiceAtual, indiceFinalFatia );

indiceFinalFatia = indiceFinalFatia + tamanhoFatia;

fatiasFeitas.push( sliceAtual );
}

return fatiasFeitas;
}

/**
* Método que converte este Vectorization.Vector para um Vectorization.Vector avançado, onde cada elemento dentro do mesmo é um Vectorization.Scalar
*/
Expand Down

0 comments on commit 44baa11

Please sign in to comment.