Size: a a a

Язык программирования Julia / Julia programming language

2020 January 17

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Товарищи, сижу туплю. Есть матрица A = [x y z] где x, y, z= 1...n. Задача выкинуть из матрицы все строки где -a<x<a или -b<y<b или -c<z<c. Длина массива неизвестна, столбцов всегда 3
источник

AN

Alexey Neznanov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
А кто то встречал вращения и алгебры Ли всякие в Julia?
Коллеги брали куски из GAP и переписывали.
GAP вообще вещь - https://www.gap-system.org.
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Да, я про них в курсе ) Кстати есть интерфейс в Julia к GAP, но непонятно, насколько полный
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
там документации нет пока, very much WIP
источник

AN

Alexey Neznanov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
Да, я про них в курсе ) Кстати есть интерфейс в Julia к GAP, но непонятно, насколько полный
Я спрошу алгебраистов.
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Я подозреваю, что как-то можно через Grassmann выразить, потому что все эти внешние алгебры — это и комплексные числа, и кватернионы, и все-все-все, в частности вращения там 100% есть, но я геометрическую алгебру вообще не вкуриваю )
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Viktor Maslov
Товарищи, сижу туплю. Есть матрица A = [x y z] где x, y, z= 1...n. Задача выкинуть из матрицы все строки где -a<x<a или -b<y<b или -c<z<c. Длина массива неизвестна, столбцов всегда 3
можно с помощью list comprehension или с помощью булевой индексации
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
можно с помощью list comprehension или с помощью булевой индексации
Через цикл. Насколько я для себя это понимаю на уровне Scilab.
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
[mat[i, :] for i in 1 : len if (-a <= mat[i, 1] <= a) & ( ...)]
типа такого
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
[mat[i, :] for i in 1 : len if (-a <= mat[i, 1] <= a) & ( ...)]
типа такого
Спасибо!
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
A[.!(
   (-a .< A[:, 1] .< a) .|
   (-b .< A[:, 2] .< b) .|
   (-c .< A[:, 3] .< c)
), :]
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Андрей Оськин
A[.!(
   (-a .< A[:, 1] .< a) .|
   (-b .< A[:, 2] .< b) .|
   (-c .< A[:, 3] .< c)
), :]
Спасибо! Так просто...
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
кстати, а что быстрее - list comprehension или булевая индексация?
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Быстрее кстати матрицы по столбцам хранить
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Индексация в теории должна быть быстрее.
Плюс, можно @views добавить, если задача позволяет, и тогда лишних аллокаций вообще не будет.
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Самый быстрый наверное какой-то извращённый filter
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Самый быстрый - это трансдьюсеры
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Они появятся в следующей версии, кстати.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
у них с inference проблемы
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Но в данном конкретном случае наверное они бы не очень помогли.
источник