Возьмем, к примеру, функцию, которая генерирует именованные кортежи
f(t) = (a=t,b=2t)
Я могу легко создать массив именованных кортежей
ts = 0.0:0.01:1.0
X = f.(ts)
Но вместо этого я хочу подобную структуру формата массивов:
Y = (a=collect(ts),b=collect(2ts))
Как вы эффективно генерируете это?Я довольно близкоЕсли я знаю имена заранее, я могу написать их следующим образом:
Y = (a=Vector{Float64}(undef,length(t)),b=Vector{Float64}(undef,length(t)))
for (i,t) in enumerate(ts)
val = f(t)
for (j,x) in enumerate(Y)
Y[j][i] = val[j]
end
end
Y
Тем не менее, генерация этого Y
с правильными именами является проблемой.Я могу получить имена вроде
template = f(first(ts))
syms = fieldnames(typeof(template))
, но как получается, что Y
генерируется из-за этих имен?