【发布时间】:2013-04-26 13:44:08
【问题描述】:
-
创建矩阵 M= (N*50) 矩阵 m=J(N,50,.)
由于我要更改观察超时的次数,如何设置N=观察次数?
如何指定矩阵的每个元素,例如M(1,2)(第 1 行第 2 列中的元素)?
如何为矩阵的每个元素赋值?例如,我想将 O 设置为第一行全为 0,即 M(1,1)=M(1,2)=...M(1,50)=0?
【问题讨论】:
创建矩阵 M= (N*50) 矩阵 m=J(N,50,.)
由于我要更改观察超时的次数,如何设置N=观察次数?
如何指定矩阵的每个元素,例如M(1,2)(第 1 行第 2 列中的元素)?
如何为矩阵的每个元素赋值?例如,我想将 O 设置为第一行全为 0,即 M(1,1)=M(1,2)=...M(1,50)=0?
【问题讨论】:
. // an (empty) dataset with 5 observations
. clear all
. set obs 5
obs was 0, now 5
.
. // go to Mata
. mata:
------------------------------------------------- mata (type end to exit) -------------------------
:
: // collect the number of observations
: n = st_nobs()
:
: // create matrix M (n x 10)
: M = J(n, 10, .)
:
: // see it:
: M
1 2 3 4 5 6 7 8 9 10
+---------------------------------------------------+
1 | . . . . . . . . . . |
2 | . . . . . . . . . . |
3 | . . . . . . . . . . |
4 | . . . . . . . . . . |
5 | . . . . . . . . . . |
+---------------------------------------------------+
:
: // fill the first row with 0s
: M[1,.] = J(1,10,0)
:
: // See cell 1,2
: M[1,2]
0
:
: // see cell 2,3
: M[2,3]
.
: end
【讨论】:
m 而不是 M),当我尝试运行它时,我看到 Stata 抱怨,我修复了 .do 文件并再次运行它.没有必要,我可以打开 Mata 并输入 M 来查看矩阵并从那里继续构建示例。通过更改 .do 文件,我确保如果您运行该示例,则不会留下未检测到的错误。
search do 吗?
创建一个 .do 文件。
只需使用任何文本编辑器,包括 Stata 的 do-file 编辑器,并使用扩展名 .do 保存。
同一随机法线连续偏离。这是一种方法:
: m = J(5,5, .)
: m[1,] = J(1, 5, rnormal(1,1,0,1))
: m
1 2 3 4 5
+-----------------------------------------------------------------------+
1 | 2.285713101 2.285713101 2.285713101 2.285713101 2.285713101 |
2 | . . . . . |
3 | . . . . . |
4 | . . . . . |
5 | . . . . . |
+-----------------------------------------------------------------------+
【讨论】:
help mata rnormal()