Юлия: функция внешнего продукта

В R функция outer структурно позволяет вам брать внешнее произведение двух векторов x и y, обеспечивая при этом ряд опций для фактической функции, применяемой к каждой комбинации. Например, outer(x,y,'-') создает матрицу «внешнего продукта» поэлементных различий между x и y. Есть ли у Юлии что-то подобное?

Почему бы просто не использовать x * y'? Не уверен, что такое -, если это внешний продукт. Или вы можете искать трансляцию: x .- y'?   —  person jjjjjj    schedule 16.06.2017

См. также:  KNITRO.jl не загружается на Julia 1.0
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. jjjjjj

    Широковещательная передача — это операция Джулии, которая происходит при добавлении .. Когда два контейнера имеют одинаковый размер, это поэлементная операция. Пример: x.*y поэлементно, если size(x)==size(y). Однако, когда формы не совпадают, тогда действительно вступает в силу трансляция. Если один из них является вектором-строкой, а один из них — вектором-столбцом, то выходные данные будут двухмерными с out[i,j], совпадающими с i-й строкой вектора-столбца с вектором-строкой j. Это означает, что x .* y — это своеобразный способ записи внешнего продукта, если один является строкой, а другой — вектором-столбцом.

    В общем, вещание делает следующее:

    Это расточительно, когда размеры становятся большими, поэтому Джулия предлагает broadcast (), который расширяет одноэлементные измерения в аргументах массива, чтобы они соответствовали соответствующему измерению в другом массиве, без использования дополнительной памяти.

    (Это из руководства Julia)

    Но это распространяется на все другие бинарные операторы, поэтому x .- y' — это то, что вы ищете.

    Фактически, x .- y' — это то, что он ищет. person jjjjjj; 16.06.2017

    Отлично, спасибо! Есть ли способ обобщить за пределами (_1 _, _ 2 _, _ 3 _, _ 4_)? Например, есть ли предпочтительный способ сделать это с помощью некоторой функции f, которая принимает два аргумента? person jjjjjj; 17.06.2017

    Так может транслироваться любой бинарный оператор. Для вызовов функций вы можете использовать f.(x,y'). person jjjjjj; 17.06.2017

    Что делать, если вы априори не знаете, size(x)==size(y) или нет. Но в любом случае вам определенно нужна внешняя матрица продуктов. person jjjjjj; 23.01.2018

    Это не имеет значения для внешних продуктов, и я объяснил почему. person jjjjjj; 23.01.2018

    Строка и вектор-столбец имеют одинаковый размер, только если один из них имеет длину 1. Понятно. person jjjjjj; 23.01.2018

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: