Stata Matrix Creation分配值

时间:2013-04-26 13:44:08

标签: matrix stata

  1. 创建矩阵M =(N * 50) 矩阵m = J(N,50 ,.)

    由于我想改变观察加班次数,如何设定N =观察次数?

  2. 如何具体化矩阵的每个元素,例如M(1,2)(第1行,第2列中的元素)?

  3. 如何为矩阵的每个元素赋值?例如,我想将第一行的O设置为全0,即M(1,1)= M(1,2)= ...... M(1,50)= 0?

2 个答案:

答案 0 :(得分:1)

. // 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

答案 1 :(得分:0)

创建.do文件。

只需使用任何文本编辑器,包括Stata的文件编辑器,并使用扩展名.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 |            .             .             .             .             .  |
    +-----------------------------------------------------------------------+