2012-11-11 83 views
0

假设我有变量创建一个特定的矩阵

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

其中a一定是整数。现在,我该如何创建一个aa矩阵,其对角元素全部等于b,并且其非对角元素都等于c?我对Stata语言的矩阵不太熟悉,所以我希望任何人都可以帮助我。提前致谢。

+0

你想在马塔这吗? –

+0

仅限于它可以“导出”到STATA并在那里用作矩阵。 –

回答

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下载。

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

+0

这是完美的。非常感谢! –