Matrix Stata矩阵创建赋值

Matrix Stata矩阵创建赋值,matrix,stata,Matrix,Stata,创建矩阵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 创建一个.do文件 只需使用任何文本编辑器,包括Stata的do文件编辑器,并使用扩展名.do保存即可 相同的随机法线在一行中偏离。这里有一个方法: : m = J(5,5, .) : m[1,] = J(1, 5,

创建矩阵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

  • 创建一个.do文件

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

    天才!非常感谢!我觉得Stata是不可原谅的,例如,如果我打错了,我就无法撤销。我必须清除并重新启动一切。有解决办法吗?例如,设置obs 5 mata:n=st_nobs()M=J(n,10,.)M[1,]=J(1,9,0)r(3200)M=J(n,10,.)r199意味着我必须清除并重新启动……我不明白这是如何迫使您重新启动的。这样的错误会将您从Mata踢到Stata,但您可以重新启动Mata,并且您创建的元素仍将存在。但是,始终使用.do文件是一种很好的做法。这样,您就可以修复.do文件并重新完整地运行它,这样您就不必依赖在错误运行后留下的东西。这将导致更稳定的代码。仔细想想,这正是我所做的。我在一个.do文件中编写了这个示例,犯了一些错误(我试图显示
    m
    而不是
    m
    ),当我试图运行它时,我看到Stata抱怨,我修复了.do文件,然后再次运行它。这是没有必要的,我可以打开Mata并键入
    M
    来查看矩阵并继续从那里构建示例。通过更改.do文件,我确保如果您运行该示例,不会留下未检测到的错误。有意义!再次感谢。:)我已经搜索了用户指南。但仍有一些疑问。1.如何创建和保存.do文件?只有在创建变量后,才能保存.dta文件。2.如果我想在整行或矩阵的特定元素中生成一个数~N(a,b),该怎么办?没有M[1,.]=M(1,10,r正常(a,b))这样的东西。您在Stata中键入了
    search do
    ?谢谢。跟进。1.R正常(a,b,平均值,sd)?a和b分别是什么?2.rnormal中这4个元素中的任何一个都可以是标量或变量吗?3.同一行不同的号码怎么样?例如,使用foreach循环在同一行中生成不同的数字可能吗?如果你是Joey,我是Nick。那友好的姿态放在一边,对不起,你问我的问题太多了。每个人的时间和利他主义都是有限的。你只需要养成阅读帮助和实验的习惯。对不起,尼克。感谢您的及时回复和建议。:)键入Stata
    help mata rnormal()
    : 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 |            .             .             .             .             .  |
        +-----------------------------------------------------------------------+