我有一个维度为
4x2
的矩阵。我想用一个循环来命名行,该循环对标量求和并添加到行名称中。
例如。来自这样的事情:
c1 c2
r1 0 0
r2 0 0
r3 0 0
r4 0 0
我想要这个:
c1 c2
_0_3 2 1
_1_4 4 3
_2_5 6 -2
_3_6 8 -4
这是我的代码:
mat WALD = J(4, 2, 0)
forval c = 0/3 {
local i = `c'
local z = 3 + `c'
matrix rownames WALD[`c' + 1] = "_`i'_`z'"
}
语法是一次性分配所有行名称。因此,您需要将最后一条语句从循环中取出。
mat WALD = J(4, 2, 0)
forval c = 0/3 {
local z = 3 + `c'
local names `names' _`c'_`z'
}
matrix rownames WALD = `names'
mat li WALD
WALD[4,2]
c1 c2
_0_3 0 0
_1_4 0 0
_2_5 0 0
_3_6 0 0
这可以压缩成更短但更神秘的代码。