тип?
Обычно это ненужная операция. Либо duck typing, либо по конструкции программы тип известен.
Хотел преаллоцировать массив для результатов некоторой операции, которая, в зависимости от типов аргументов возвращает разный тип. Проще всего конечно выполнить операцию и померить вернувшийся тип (наверное так и поступлю), но думал, может есть какая-то функция именно для этого случая...
А размер массива известен заранее? Просто обычно в этом случае можно обычный map использовать. Он сам заалоцирует как надо и сколько надо.
map не подходит, потому что на входе два вектора длины n и m с аргументами для бинарной операции, а на выходе должна получиться матрица размерности n*m function pwise(v1::Vector, v2::Vector, bin_opr::Function) T = Base.promote_op(bin_opr, eltype(v1), eltype(v2)) result = Matrix{T}(undef, length(v1), length(v2)) for i in eachindex(v1) @inbounds @simd for j in eachindex(v2) result[i, j] = bin_opr(v1[i], v2[j]) end end return result end
Обсуждают сегодня