Subclasses indiretas conhecidas |
Um NdArray
de flutuadores.
Métodos Públicos
FloatNdArray abstrato | |
abstrato NdArraySequence < FloatNdArray > | elementos (int dimensionIdx) Retorna uma sequência de todos os elementos em uma determinada dimensão. |
FloatNdArray abstrato | obter (longas ... coordenadas) Retorna o elemento N-dimensional desta matriz nas coordenadas fornecidas. |
flutuador abstrato | getFloat (long ... coordinates) Retorna o valor flutuante do escalar encontrado nas coordenadas fornecidas. |
Float abstrato | getObject (long ... coordinates) Retorna o valor do escalar encontrado nas coordenadas fornecidas. |
FloatNdArray abstrato | ler ( FloatDataBuffer dst) |
FloatNdArray abstrato | ler ( DataBuffer <Float> dst) |
abstrato NdArraySequence < FloatNdArray > | escalares () Retorna uma sequência de todos os escalares nesta matriz. |
FloatNdArray abstrato | |
FloatNdArray abstrato | setFloat (valor flutuante, long ... coordenadas) Atribui o valor flutuante do escalar encontrado nas coordenadas fornecidas. |
FloatNdArray abstrato | setObject (valor flutuante, long ... coordenadas) |
FloatNdArray abstrato | fatia ( índice ... coordenadas) Cria uma visualização multidimensional (ou fatia) dessa matriz mapeando uma ou mais dimensões para os seletores de índice fornecidos. |
FloatNdArray abstrato | escrever ( DataBuffer <Float> src) |
FloatNdArray abstrato | escrever ( FloatDataBuffer src) |
Métodos herdados
Métodos Públicos
elementos NdArraySequence < FloatNdArray > abstratos públicos (int dimensionIdx)
Retorna uma sequência de todos os elementos em uma determinada dimensão.
Logicamente, a matriz N-dimensional pode ser achatada em um único vetor, onde os escalares do (n - 1)
elemento precede aqueles do (n)
elemento, para um total de valores de 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
dimensionIdx | índice da dimensão |
---|
Devoluções
- uma sequência
NdArray
public abstract FloatNdArray get (long ... coordinates)
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 é 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 afetam os dados desta matriz também, pois não há nenhuma cópia envolvida.
Observe que invocar este método é uma forma equivalente e mais eficiente de array.get(x, y, z)
este array em um escalar único, ou seja, array.get(x, y, z)
é igual a array.slice(at(x), at(y), at(z))
Parâmetros
coordenadas | coordenadas do elemento a acessar, nenhuma retornará esta matriz |
---|
Devoluções
- o elemento neste índice
public abstract float getFloat (long ... coordinates)
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 desta matriz (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 daquele escalar
Lança
IndexOutOfBoundsException | se algumas coordenadas estão fora dos limites de suas respectivas dimensões |
---|---|
IllegalRankException | se o número de coordenadas não for suficiente para acessar um elemento escalar |
public abstract Float getObject (long ... coordinates)
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 desta matriz (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 o uso do método especializado na subclasse desse tipo. Por exemplo, floatArray.getFloat(0);
. Parâmetros
coordenadas | coordenadas do escalar para resolver |
---|
Devoluções
- valor daquele escalar
public abstract 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
public abstract FloatNdArray setFloat (valor flutuante, long ... coordenadas)
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 desta matriz (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 para atribuir |
---|---|
coordenadas | coordenadas do escalar para atribuir |
Devoluções
- esta matriz
Lança
IndexOutOfBoundsException | se algumas coordenadas estão fora dos limites de suas respectivas dimensões |
---|---|
IllegalRankException | se o número de coordenadas não for suficiente para acessar um elemento escalar |
Fatia de FloatNdArray abstrata pública (Coordenadas de índice ... )
Cria uma visualização multidimensional (ou fatia) dessa matriz mapeando uma ou mais dimensões para os seletores de índice fornecidos.
As fatias permitem atravessar uma matriz N-dimensional em qualquer um de seus eixos e / ou filtrar apenas os elementos de interesse. Por exemplo, para uma dada matriz nos eixos [x, y]
, é possível iterar elementos em y=0
para todos os x
.
Quaisquer alterações aplicadas à fatia retornada afetam os dados dessa matriz também, pois não há nenhuma 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