我按照你的意思做了个测试程序,没有发现问题。
程序如下,你可以复制后直接在你的机子上执行。
sysuse sp500, clear
forvalues i = 1(1)10{
preserve
keep if [_n] == `i'
mkmat _all, mat(trans_x_`i')
mat x_`i' = (trans_x_`i')'
restore
}
mat dir
结果如下:
. sysuse sp500, clear
(S&P 500)
. forvalues i = 1(1)10{
2. preserve
3. keep if [_n] == `i'
4. mkmat _all, mat(trans_x_`i')
5. mat x_`i' = (trans_x_`i')'
6. restore
7. }
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
(247 observations deleted)
. mat dir
x_10[7,1]
trans_x_10[1,7]
x_9[7,1]
trans_x_9[1,7]
x_8[7,1]
trans_x_8[1,7]
x_7[7,1]
trans_x_7[1,7]
x_6[7,1]
trans_x_6[1,7]
x_5[7,1]
trans_x_5[1,7]
x_4[7,1]
trans_x_4[1,7]
x_3[7,1]
trans_x_3[1,7]
x_2[7,1]
trans_x_2[1,7]
x_1[7,1]
trans_x_1[1,7]
x_20[7,1]
trans_x_20[1,7]
x_19[7,1]
trans_x_19[1,7]
x_18[7,1]
trans_x_18[1,7]
x_17[7,1]
trans_x_17[1,7]
x_16[7,1]
trans_x_16[1,7]
x_15[7,1]
trans_x_15[1,7]
x_14[7,1]
trans_x_14[1,7]
x_13[7,1]
trans_x_13[1,7]
x_12[7,1]
trans_x_12[1,7]
x_11[7,1]
trans_x_11[1,7]
x_48[7,1]
trans_x_48[1,7]
x_47[7,1]
trans_x_47[1,7]
x_46[7,1]
trans_x_46[1,7]
x_45[7,1]
trans_x_45[1,7]
x_44[7,1]
trans_x_44[1,7]
x_43[7,1]
trans_x_43[1,7]
x_42[7,1]
trans_x_42[1,7]
x_41[7,1]
trans_x_41[1,7]
x_40[7,1]
trans_x_40[1,7]
x_39[7,1]
trans_x_39[1,7]
x_38[7,1]
trans_x_38[1,7]
x_37[7,1]
trans_x_37[1,7]
x_36[7,1]
trans_x_36[1,7]
x_35[7,1]
trans_x_35[1,7]
x_34[7,1]
trans_x_34[1,7]
x_33[7,1]
trans_x_33[1,7]
x_32[7,1]
trans_x_32[1,7]
x_31[7,1]
trans_x_31[1,7]
x_30[7,1]
trans_x_30[1,7]
x_29[7,1]
trans_x_29[1,7]
x_28[7,1]
trans_x_28[1,7]
x_27[7,1]
trans_x_27[1,7]
x_26[7,1]
trans_x_26[1,7]
x_25[7,1]
trans_x_25[1,7]
x_24[7,1]
trans_x_24[1,7]
x_23[7,1]
trans_x_23[1,7]
x_22[7,1]
trans_x_22[1,7]
x_21[7,1]
trans_x_21[1,7]