Кто-нибудь может подсказать, что ".>" Делает на julia lang - PullRequest
1 голос
/ 01 августа 2020

Кто-нибудь может предложить, что.> Будет делать в приведенном ниже коде. Я пробовал бежать без. и это не удалось

array6[:, 1] .> 12

1 Ответ

3 голосов
/ 01 августа 2020
array6[:, 1] .> 12

совпадает с

broadcast(>, array6[:, 1], 12)

Вы можете проверить подробности того, что делает broadcast, в своей строке документации.

Вы также можете посмотреть https://docs.julialang.org/en/latest/manual/arrays/#Array -and-Vectorized-Operators-and-Functions-1 и https://docs.julialang.org/en/latest/manual/arrays/#Broadcasting -1 разделы (включая ссылки в них) в руководстве Julia, в которых объясняется, как и почему работают такие операции.

Позвольте дать небольшой комментарий. Вы пытаетесь сравнить, используя > вектор (один столбец матрицы array6) и скаляр (12). Такая операция по умолчанию плохо определена в математике, поэтому Джулия тоже не допускает ее. скаляр, имеющий размерность 0, который вы можете проверить, написав ndims(12)) в размер объекта с более высокой размерностью (в данном случае вектор, имеющий размерность 1, который вы можете проверить, написав ndims(array6[:, 1])). Распространение выполняется путем простого повторения значения 12 столько раз, сколько необходимо в целевом измерении, чтобы размеры обоих объектов совпадали (технически то, что должно совпадать после распространения, - это то, что возвращает функция axes). Затем, если у вас есть два объекта одинакового размера, функция > применяется к каждому совпадающему элементу обоих объектов.

...