Отредактировано для ясности!
Существует несколько способов создания / генерации массива в Julia.
Я использовал одинарную кавычку или апострофный подход для векторов столбцов, потому что это быстрее, чем множественные запятые в []:
julia> a = [1 2 3 4]'
4×1 LinearAlgebra.Adjoint{Int64,Array{Int64,2}}:
1
2
3
4
Это генерирует, как мне кажется, более сложный тип данных: "LinearAlgebra.Adjoint {Int64, Array {Int64,1}}" *
По сравнению с запятыми:
julia> a = [1,2,3,4]
4-element Array{Int64,1}:
1
2
3
4
, который генерирует тип Array {Int64,1}.
Вопрос (ы):
Является ли тип LinearAlgebra.Adjoint {...} более вычислительно дорогим, чем базовый массив? Следует ли мне избегать генерации этого массива в общем смысле? (Т.е. вне моделирования линейной алгебры)
Возможно, есть небольшая разница, которая не будет иметь значения при меньшем объеме, но я планирую в конечном итоге выполнить операции с большими наборами данных. Должен ли я поддерживать согласованность с генерацией их в виде Array {Int64,1} типов для этих целей?
Оригинал
Я изучал Юлию и хотел бы развить хорошие привычки рано; сосредоточив внимание на вычислительной эффективности. Я работал с массивами и освоился с одинарной кавычкой в конце для преобразования в вектор-столбец. Из того, что я понимаю о системе типов, это не просто более быстрый вариант организации, чем запятая. Является ли использование запятой в вычислительном отношении более дорогим или семантически нежелательным в целом? Кажется, это не имеет значения для меньших наборов данных, но как насчет больших наборов данных (например, 10k вычислений)
Deleted original code example to avoid confusion.