我正在与Mata(Stata)合作尝试追加(垂直连接)许多向量。 我想做点什么
mat C = A\B
但是由于我有大约300个列向量要附加在一个唯一的列向量中,我想知道是否有命令来执行它(因为它很难键入
mat C = c1\c2\c3...
300次)。
答案 0 :(得分:3)
您引用的代码是Stata的矩阵语言,不 Mata。
你是如何获得这些载体的?他们系统地命名了吗?
根据细节,可能会有一个简单的答案。
例如,在Stata中,您可以使用列向量c1
... c300
mat C = c1
forval j = 2/300 {
mat C = C \ c`j'
}
尽管matsize
限制可能意味着您最好将这样的列向量作为Stata变量或Mata处理。
编辑:要从这些列中生成Stata中的矩阵,请使用,
而非\
。
答案 1 :(得分:0)
此代码采用尼克的逻辑,但使用的是Mata语言。
mat c=(1,4,7,10\2,5,8,11\3,6,9,12) // 3 x 4 matrix
mat list c
mata
c=st_matrix("c") // Stata matrix into Mata matrix
x=c[.,1]
for (i=2; i<5;i++) {
x=x\c[.,i]
}
st_matrix("newC",x) // Mata matrix into Stata matrix
end
mat list newC