创建特定矩阵

时间:2012-11-11 14:32:54

标签: stata

假设我有变量

local a=10
local b=1
local c=0.25

其中a必然是整数。现在,如何创建一个aa矩阵,其对角线元素都等于b且其非对角线元素都等于c?我对Stata语言中的矩阵不是很熟悉,所以我希望有人能帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:4)

. local a = 10

. local b = 1

. local c = 0.25

. matrix A = `b' * I(`a')

. mat li A

symmetric A[10,10]
     c1   c2   c3   c4   c5   c6   c7   c8   c9  c10
r1    1
r2    0    1
r3    0    0    1
r4    0    0    0    1
r5    0    0    0    0    1
r6    0    0    0    0    0    1
r7    0    0    0    0    0    0    1
r8    0    0    0    0    0    0    0    1
r9    0    0    0    0    0    0    0    0    1
r10    0    0    0    0    0    0    0    0    0    1

. matmap A A , m(cond(@ == 0, 0.25, @))

. mat li A

symmetric A[10,10]
     c1   c2   c3   c4   c5   c6   c7   c8   c9  c10
r1    1
r2  .25    1
r3  .25  .25    1
r4  .25  .25  .25    1
r5  .25  .25  .25  .25    1
r6  .25  .25  .25  .25  .25    1
r7  .25  .25  .25  .25  .25  .25    1
r8  .25  .25  .25  .25  .25  .25  .25    1
r9  .25  .25  .25  .25  .25  .25  .25  .25    1
r10  .25  .25  .25  .25  .25  .25  .25  .25  .25    1

必须使用matmap从SSC下载ssc inst matmap

顺便说一下,这里不需要当地人。您可以直接输入常量。