假设我有变量
local a=10
local b=1
local c=0.25
其中a
必然是整数。现在,如何创建一个a
次a
矩阵,其对角线元素都等于b
且其非对角线元素都等于c
?我对Stata语言中的矩阵不是很熟悉,所以我希望有人能帮助我。提前谢谢。
答案 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
。
顺便说一下,这里不需要当地人。您可以直接输入常量。