Subclasses indiretas conhecidas |
Um NdArray
de carros alegóricos.
Métodos Públicos
abstrato FloatNdArray | |
abstrato NdArraySequence < FloatNdArray > | elementos (int dimensãoIdx) Retorna uma sequência de todos os elementos em uma determinada dimensão. |
abstrato FloatNdArray | obter (longas... coordenadas) Retorna o elemento N-dimensional desta matriz nas coordenadas fornecidas. |
flutuador abstrato | getFloat (longo... coordenadas) Retorna o valor flutuante do escalar encontrado nas coordenadas fornecidas. |
flutuador abstrato | getObject (longo... coordenadas) Retorna o valor do escalar encontrado nas coordenadas fornecidas. |
abstrato FloatNdArray | ler ( FloatDataBuffer dst) |
abstrato FloatNdArray | ler ( DataBuffer <Float> dst) |
abstrato NdArraySequence < FloatNdArray > | escalares () Retorna uma sequência de todos os escalares nesta matriz. |
abstrato FloatNdArray | |
abstrato FloatNdArray | setFloat (valor flutuante, coordenadas longas) Atribui o valor flutuante do escalar encontrado nas coordenadas fornecidas. |
abstrato FloatNdArray | setObject (valor flutuante, coordenadas longas) |
abstrato FloatNdArray | |
abstrato FloatNdArray | escrever ( DataBuffer <Float> src) |
abstrato FloatNdArray | escrever ( FloatDataBuffer src) |
Métodos herdados
Métodos Públicos
público abstrato NdArraySequence < FloatNdArray > elementos (int dimensionIdx)
Retorna uma sequência de todos os elementos em uma determinada dimensão.
Logicamente, a matriz N-dimensional pode ser nivelada em um único vetor, onde os escalares do (n - 1)
-ésimo elemento precedem aqueles do (n)
-ésimo elemento, para um total de valores size()
.
Por exemplo, dada uma matriz nxm
nos eixos [x, y]
, os elementos são iterados na seguinte ordem:
x 0 y 0 , x 0 y 1 , ..., x 0 y m-1 , x 1 y 0 , x 1 y 1 , ..., x n-1 y m-1
A sequência retornada pode então ser iterada para visitar cada elemento, chamando forEach(Consumer)
ou forEachIndexed(BiConsumer)
.
// Iterate matrix for initializing each of its vectors
matrixOfFloats.elements(0).forEach(v -> {
v.set(vector(1.0f, 2.0f, 3.0f));
);
// Iterate a vector for reading each of its scalar
vectorOfFloats.scalars().forEachIdx((coords, s) -> {
System.out.println("Value " + s.getFloat() + " found at " + coords);
});
}
Parâmetros
dimensãoIdx | índice da dimensão |
---|
Devoluções
- uma sequência
NdArray
público abstrato FloatNdArray get (longo... coordenadas)
Retorna o elemento N-dimensional desta matriz nas coordenadas fornecidas.
Elementos de qualquer uma das dimensões desta matriz podem ser recuperados. Por exemplo, se o número de coordenadas for igual ao número de dimensões deste array, então um array de classificação 0 (escalar) é retornado, cujo valor pode então ser obtido chamando `array.getObject()`.
Quaisquer alterações aplicadas aos elementos retornados também afetam os dados deste array, pois não há cópia envolvida.
Observe que invocar esse método é uma maneira equivalente e mais eficiente de dividir esse array em um único escalar, ou seja, array.get(x, y, z)
é igual a array.slice(at(x), at(y), at(z))
Parâmetros
coordenadas | coordenadas do elemento a ser acessado, nenhuma retornará este array |
---|
Devoluções
- o elemento neste índice
público abstrato float getFloat (longo... coordenadas)
Retorna o valor flutuante do escalar encontrado nas coordenadas fornecidas.
Para acessar o elemento escalar, o número de coordenadas fornecidas deve ser igual ao número de dimensões deste array (ou seja, sua classificação). Por exemplo:
FloatNdArray matrix = NdArrays.ofFloats(shape(2, 2)); // matrix rank = 2
matrix.getFloat(0, 1); // succeeds, returns 0.0f
matrix.getFloat(0); // throws IllegalRankException
FloatNdArray scalar = matrix.get(0, 1); // scalar rank = 0
scalar.getFloat(); // succeeds, returns 0.0f
Parâmetros
coordenadas | coordenadas do escalar para resolver |
---|
Devoluções
- valor desse escalar
Lança
IndexOutOfBoundsException | se algumas coordenadas estiverem fora dos limites de sua respectiva dimensão |
---|---|
IlegalRankException | se o número de coordenadas não for suficiente para acessar um elemento escalar |
público abstrato Float getObject (longo... coordenadas)
Retorna o valor do escalar encontrado nas coordenadas fornecidas.
Para acessar o elemento escalar, o número de coordenadas fornecidas deve ser igual ao número de dimensões deste array (ou seja, sua classificação). Por exemplo:
FloatNdArray matrix = NdArrays.ofFloats(shape(2, 2)); // matrix rank = 2
matrix.getObject(0, 1); // succeeds, returns 0.0f
matrix.getObject(0); // throws IllegalRankException
FloatNdArray scalar = matrix.get(0, 1); // scalar rank = 0
scalar.getObject(); // succeeds, returns 0.0f
Nota: se este array armazena valores de um tipo primitivo, prefira a utilização do método especializado na subclasse para esse tipo. Por exemplo, floatArray.getFloat(0);
. Parâmetros
coordenadas | coordenadas do escalar para resolver |
---|
Devoluções
- valor desse escalar
público abstrato NdArraySequence < FloatNdArray > escalares ()
Retorna uma sequência de todos os escalares nesta matriz.
Isso é equivalente a chamar elements(shape().numDimensions() - 1)
Devoluções
- uma sequência
NdArray
público abstrato FloatNdArray setFloat (valor flutuante, coordenadas longas)
Atribui o valor flutuante do escalar encontrado nas coordenadas fornecidas.
Para acessar o elemento escalar, o número de coordenadas fornecidas deve ser igual ao número de dimensões deste array (ou seja, sua classificação). Por exemplo:
FloatNdArray matrix = NdArrays.ofFloats(shape(2, 2)); // matrix rank = 2
matrix.setFloat(10.0f, 0, 1); // succeeds
matrix.setFloat(10.0f, 0); // throws IllegalRankException
FloatNdArray scalar = matrix.get(0, 1); // scalar rank = 0
scalar.setFloat(10.0f); // succeeds
Parâmetros
valor | valor a atribuir |
---|---|
coordenadas | coordenadas do escalar a ser atribuído |
Devoluções
- esta matriz
Lança
IndexOutOfBoundsException | se algumas coordenadas estiverem fora dos limites de sua respectiva dimensão |
---|---|
IlegalRankException | se o número de coordenadas não for suficiente para acessar um elemento escalar |
fatia de FloatNdArray abstrata pública ( índice... coordenadas)
Cria uma visualização multidimensional (ou fatia) desta matriz mapeando uma ou mais dimensões para os seletores de índice fornecidos.
As fatias permitem percorrer um array N-dimensional em qualquer um de seus eixos e/ou filtrar apenas os elementos de interesse. Por exemplo, para uma determinada matriz nos eixos [x, y]
, é possível iterar elementos em y=0
para todos x
.
Quaisquer alterações aplicadas à fatia retornada também afetam os dados desta matriz, pois não há cópia envolvida.
Exemplo de uso:
FloatNdArray matrix3d = NdArrays.ofFloats(shape(3, 2, 4)); // with [x, y, z] axes
// Iterates elements on the x axis by preserving only the 3rd value on the z axis,
// (i.e. [x, y, 2])
matrix3d.slice(all(), all(), at(2)).elements(0).forEach(m -> {
assertEquals(shape(2), m); // y=2, z=0 (scalar)
);
// Creates a slice that contains only the last element of the y axis and elements with an
// odd `z` coordinate.
FloatNdArray slice = matrix3d.slice(all(), at(1), odd());
assertEquals(shape(3, 2), slice.shape()); // x=3, y=0 (scalar), z=2 (odd coordinates)
// Iterates backward the elements on the x axis
matrix3d.slice(flip()).elements(0).forEach(m -> {
assertEquals(shape(2, 4), m); // y=2, z=4
});
}
Parâmetros
coordenadas | seletores de índice por dimensões, começando na dimensão 0 desta matriz. |
---|
Devoluções
- o elemento resultante da seleção do índice