У меня есть следующий вектор:

 v:(1,-1)

Я хотел бы создать функцию, которая повторяет этот вектор в примере n раз:

f[v,3] results in ((1 -1);(1 -1);(1 -1))

Может ли кто-нибудь помочь мне определить эту функцию?

kdb
0
Data_journey 17 Сен 2018 в 23:19

2 ответа

Лучший ответ

Для этого можно использовать функцию # take, например

q)f:{y#enlist x}

q)f[v;3]
1 -1
1 -1
1 -1

Это также можно сделать без включения вектора, например

q)3 2#v
1 -1
1 -1
1 -1

Или в более общем плане:

q)f:{(y;count x)#x}
q)f[v;3]
1 -1
1 -1
1 -1
2
James Little 17 Сен 2018 в 20:49

Вы можете сделать что-то вроде этого, если не хотите создавать новую функцию:

q)#[3;enlist v]
1 -1
1 -1
1 -1
-1
nyi 17 Сен 2018 в 20:52