Известные косвенные подклассы |
NdArray
чисел с плавающей запятой.
Публичные методы
абстрактный FloatNdArray | |
абстрактный NdArraySequence < FloatNdArray > | элементы (int DimensionIdx) Возвращает последовательность всех элементов заданного измерения. |
абстрактный FloatNdArray | получить (длинные... координаты) Возвращает N-мерный элемент этого массива по заданным координатам. |
абстрактный поплавок | getFloat (длинные... координаты) Возвращает значение с плавающей запятой скаляра, найденного в заданных координатах. |
абстрактный Плавающий | getObject (длинные... координаты) Возвращает значение скаляра, найденного в заданных координатах. |
абстрактный FloatNdArray | чтение ( FloatDataBuffer dst) |
абстрактный FloatNdArray | чтение ( DataBuffer <Float> dst) |
абстрактный NdArraySequence < FloatNdArray > | скаляры () Возвращает последовательность всех скаляров в этом массиве. |
абстрактный FloatNdArray | |
абстрактный FloatNdArray | setFloat (число с плавающей запятой, длинные... координаты) Присваивает плавающее значение скаляра, найденного в заданных координатах. |
абстрактный FloatNdArray | setObject (плавающее значение, длинные... координаты) |
абстрактный FloatNdArray | |
абстрактный FloatNdArray | запись ( DataBuffer <Float> src) |
абстрактный FloatNdArray | запись ( FloatDataBuffer src) |
Унаследованные методы
Публичные методы
общедоступные абстрактные элементы NdArraySequence < FloatNdArray > (int DimensionIdx)
Возвращает последовательность всех элементов заданного измерения.
Логично, что N-мерный массив может быть сведен в один вектор, где скаляры (n - 1)
-го элемента предшествуют скалярам (n)
-го элемента, для общего количества значений size()
.
Например, для матрицы nxm
по осям [x, y]
элементы повторяются в следующем порядке:
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
Возвращенную последовательность затем можно повторить для посещения каждого элемента, вызвав forEach(Consumer)
или 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);
});
}
Параметры
измерениеIdx | индекс измерения |
---|
Возврат
- последовательность
NdArray
общедоступный абстрактный FloatNdArray get (длинные... координаты)
Возвращает N-мерный элемент этого массива по заданным координатам.
Можно извлечь элементы любого измерения этого массива. Например, если количество координат равно количеству измерений этого массива, то возвращается массив ранга 0 (скалярный), значение которого затем можно получить, вызвав `array.getObject()`.
Любые изменения, примененные к возвращаемым элементам, также влияют на данные этого массива, поскольку копирование не требуется.
Обратите внимание, что вызов этого метода является эквивалентным и более эффективным способом разрезать этот массив на один скаляр, т.е. array.get(x, y, z)
равен array.slice(at(x), at(y), at(z))
Параметры
координаты | координаты элемента, к которому осуществляется доступ, никто не вернет этот массив |
---|
Возврат
- элемент по этому индексу
общедоступный абстрактный float getFloat (длинные... координаты)
Возвращает значение с плавающей запятой скаляра, найденного в заданных координатах.
Для доступа к скалярному элементу количество предоставленных координат должно быть равно количеству измерений этого массива (т.е. его рангу). Например:
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
Параметры
координаты | координаты скаляра для разрешения |
---|
Возврат
- значение этого скаляра
Броски
Индексаутофбаундсисключение | если некоторые координаты находятся за пределами соответствующего измерения |
---|---|
IllegalRankException | если количества координат недостаточно для доступа к скалярному элементу |
общедоступный абстрактный Float getObject (длинные... координаты)
Возвращает значение скаляра, найденного в заданных координатах.
Для доступа к скалярному элементу количество предоставленных координат должно быть равно количеству измерений этого массива (т.е. его рангу). Например:
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
Примечание. Если в этом массиве хранятся значения примитивного типа, предпочтительнее использовать специализированный метод в подклассе этого типа. Например, floatArray.getFloat(0);
. Параметры
координаты | координаты скаляра для разрешения |
---|
Возврат
- значение этого скаляра
общедоступный абстрактный NdArraySequence < FloatNdArray > скаляры ()
Возвращает последовательность всех скаляров в этом массиве.
Это эквивалентно вызову elements(shape().numDimensions() - 1)
Возврат
- последовательность
NdArray
общедоступный абстрактный FloatNdArray setFloat (число с плавающей запятой, длинные... координаты)
Присваивает плавающее значение скаляра, найденного в заданных координатах.
Для доступа к скалярному элементу количество предоставленных координат должно быть равно количеству измерений этого массива (т.е. его рангу). Например:
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
Параметры
ценить | значение для присвоения |
---|---|
координаты | координаты скаляра, который нужно назначить |
Возврат
- этот массив
Броски
Индексаутофбаундсисключение | если некоторые координаты находятся за пределами соответствующего измерения |
---|---|
IllegalRankException | если количества координат недостаточно для доступа к скалярному элементу |
общедоступный абстрактный FloatNdArray setObject (значение с плавающей запятой, длинные... координаты)
общедоступный абстрактный фрагмент FloatNdArray ( индекс... координаты)
Создает многомерное представление (или срез) этого массива путем сопоставления одного или нескольких измерений с заданными селекторами индекса.
Срезы позволяют перемещаться по N-мерному массиву по любой его оси и/или фильтровать только интересующие элементы. Например, для данной матрицы по осям [x, y]
можно перебирать элементы по y=0
для всех x
.
Любые изменения, примененные к возвращенному фрагменту, также влияют на данные этого массива, поскольку копирование не требуется.
Пример использования:
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
});
}
Параметры
координаты | селекторы индексов для каждого измерения, начиная с измерения 0 этого массива. |
---|
Возврат
- элемент, полученный в результате выбора индекса