Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Re:Turn lower diagonal matrix
From
"Bianca B." <[email protected]>
To
[email protected]
Subject
Re: st: Re:Turn lower diagonal matrix
Date
Thu, 1 Nov 2012 11:33:36 -0700 (PDT)
I transposed my original matrix without using mata:
matrix list S2
S2[2,2]
var1 var2
r1 0 .
r2 1 0
mat S2t = S2'
. matrix list S2t
S2t[2,2]
r1 r2
var1 0 1
var2 . 0
Is it possible to combine S2 and S2t for obtaining
r1 r2
var1 0 1
var2 1 0
?
--- On Thu, 11/1/12, Nick Cox <[email protected]> wrote:
> From: Nick Cox <[email protected]>
> Subject: Re: st: Re: Stata matrix to Mata matrix form - Turn lower diagonal matrix
> To: [email protected]
> Date: Thursday, November 1, 2012, 11:05 AM
> Then the missing . should have
> carried over to Mata and should have
> been displayed, which is not visible in your previous
> report. More
> importantly, -makesymmetric()- works:
>
> . mat li S2
>
> S2[2,2]
> c1 c2
> r1 0 .
> r2 1 0
>
> . mata
> ------------------------------------------------- mata (type
> end to
> exit) --------------------------------------------
> : S2 = st_matrix("S2")
>
> : S2
> 1 2
> +---------+
> 1 | 0 . |
> 2 | 1 0 |
> +---------+
>
> : makesymmetric(S2)
> [symmetric]
> 1 2
> +---------+
> 1 | 0 |
> 2 | 1 0 |
> +---------+
>
> :
> What you may be missing is that -makesymmetric()- shows the
> result of
> making a matrix symmetric; it does not itself change the
> argument.
> That can be done by assignment or by using
> -_makesymmetric()-
>
> : _makesymmetric(S2)
>
> : S2
> [symmetric]
> 1 2
> +---------+
> 1 | 0 |
> 2 | 1 0 |
> +---------+
>
>
>
> On Thu, Nov 1, 2012 at 5:57 PM, Bianca B. <[email protected]>
> wrote:
> > The elements in row 1 are 0 and . (i.e. missing value),
> in row 2 1 and 0.
> > Then I converted my original stata matrix into mata.
> >
> >
> >
> > --- On Thu, 11/1/12, Nick Cox <[email protected]>
> wrote:
> >
> >> From: Nick Cox <[email protected]>
> >> Subject: Re: st: Re: Stata matrix to Mata matrix
> form - Turn lower diagonal matrix
> >> To: [email protected]
> >> Date: Thursday, November 1, 2012, 10:11 AM
> >> I mean what is the element in row 1
> >> and column 2 of your matrix?
> >>
> >> mat_s2[1,2]
> >>
> >> will display it in Mata.
> >>
> >> I may be missing something important, but I don't
> understand
> >> how your
> >> matrix can display like that unless it is
> symmetric.
> >>
> >> Nick
> >>
> >> On Thu, Nov 1, 2012 at 4:46 PM, Bianca B. <[email protected]>
> >> wrote:
> >>
> >> > mat_S2[1,2] is the name of the matrix.
> >> >
> >> > mat_S2
> >> >
> >> > 1 2
> >> > +---------+
> >> > 1 | 0 |
> >> > | 1 0
> >> > |
> >> >> >+---------+
> >> > I found this old post
> >> > http://www.stata.com/statalist/archive/2007-02/msg00156.html
> >> >
> >> > where there is exactly my same question that
> is to turn
> >> my lower-triangular matrix, named mat_S2, into a
> symmetrical
> >> matrix by reflecting the lower triangular elements
> across
> >> the diagonal.
> >> >
> >> > I tried to use mata makesymmetric function but
> I do not
> >> obtain the matrix I wish and that I report below
> >> >
> >> >
> 1 2
> >> > +---------+
> >> > 1 |
> >> 0 1 |
> >> > 2 |
> >> 1 0 |
> >> > +---------+
> >> >
> >> >
> >> >
> >> > --- On Thu, 11/1/12, Nick Cox <[email protected]>
> >> wrote:
> >> >
> >> >> From: Nick Cox <[email protected]>
> >> >> Subject: Re: st: Re: Stata matrix to Mata
> matrix
> >> form
> >> >> To: [email protected]
> >> >> Date: Thursday, November 1, 2012, 9:34 AM
> >> >> You've lost me. What is mat_S2[1,2]?
> >> >>
> >> >> Nick
> >> >>
> >> >> On Thu, Nov 1, 2012 at 3:39 PM, Bianca B.
> <[email protected]>
> >> >> wrote:
> >> >> > Nick, you're right, I'm sorry. I
> didn't
> >> specify that I
> >> >> need to turn my lower-triangular matrix
> into a
> >> symmetrical
> >> >> matrix by reflecting the lower triangular
> elements
> >> across
> >> >> the diagonal. So starting from this
> matrix
> >> >> >
> >> >> > mat_S2
> >> >> >
> >> >> >
> >> >> 1 2
> >> >> > +---------+
> >> >> > 1 | 0
> >> |
> >> >> > 2 |
> 1 0
> >> >> > |
> >> >> > +---------+
> >> >> > I'd like to obtain a matrix
> like that
> >> >> >
> >> >> >
> >> >> 1 2
> >> >> > +---------+
> >> >> > 1 |
> >> 0 1 |
> >> >> > 2 |
> >> 1 0 |
> >> >> > +---------+
> >> >> >
> >> >> >
> >> >> >
> >> >> >
> >> >> > --- On Thu, 11/1/12, Nick Cox <[email protected]>
> >> >> wrote:
> >> >> >
> >> >> >> From: Nick Cox <[email protected]>
> >> >> >> Subject: Re: st: Re: Stata matrix
> to Mata
> >> matrix
> >> >> form
> >> >> >> To: [email protected]
> >> >> >> Date: Thursday, November 1, 2012,
> 8:29 AM
> >> >> >> Looks symmetric to me.
> >> >> >>
> >> >> >> If a matrix is symmetric, Stata
> says so,
> >> and only
> >> >> displays
> >> >> >> the lower
> >> >> >> half (including the principal
> diagonal).
> >> >> >>
> >> >> >> In your case, Stata is doing
> exactly
> >> that.
> >> >> >>
> >> >> >> Here is another example:
> >> >> >>
> >> >> >> . mata : I(3)
> >> >> >> [symmetric]
> >> >> >>
> >> >> >>
> >> >> 1 2 3
> >> >> >>
> +-------------+
> >> >> >> 1 | 1
> >> >> |
> >> >> >> 2 |
> >> >> 0 1
> |
> >> >> >> 3 |
> >> >> >>
> >> 0 0 1 |
> >> >> >>
> +-------------+
> >> >> >>
> >> >> >> If this is not what you mean,
> you'll have
> >> to
> >> >> explain what
> >> >> >> "doesn't
> >> >> >> work" means exactly.
> >> >> >>
> >> >> >> Nick
> >> >> >>
> >> >> >> On Thu, Nov 1, 2012 at 3:16 PM,
> Bianca B.
> >> <[email protected]>
> >> >> >> wrote:
> >> >> >> > Dear Nick,
> >> >> >> >
> >> >> >> > Thanks a lot. I converted a
> >> lower-triangular
> >> >> matrix
> >> >> >> from stata to mata form to apply
> the mata
> >> >> makesymmetric
> >> >> >> command but it doesn't work.
> >> >> >> > The command is
> >> >> >> >
> >> >> >> > : makesymmetric(mat_S2)
> >> >> >> > [symmetric]
> >> >> >> >
> >> >> 1 2
> >> >> >> >
> +---------+
> >> >> >> > 1 |
> 0
> >> >> |
> >> >> >> > 2 |
> >> >> 1 0
> >> >> >> |
> >> >> >> >
> +---------+
> >> >> >> >
> >> >> >> > Would you have any
> suggestion?
> >> >> >> > Best,
> >> >> >> > Bianca
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > . mat foo = J(6,7,42)
> >> >> >> >
> >> >> >> > . mat li foo
> >> >> >> >
> >> >> >> > foo[6,7]
> >> >> >> > c1
> >> c2 c3
> >> >> >> c4 c5 c6 c7
> >> >> >> > r1 42 42
> 42
> >> 42
> >> >> 42
> >> >> >> 42 42
> >> >> >> > r2 42 42
> 42
> >> 42
> >> >> 42
> >> >> >> 42 42
> >> >> >> > r3 42 42
> 42
> >> 42
> >> >> 42
> >> >> >> 42 42
> >> >> >> > r4 42 42
> 42
> >> 42
> >> >> 42
> >> >> >> 42 42
> >> >> >> > r5 42 42
> 42
> >> 42
> >> >> 42
> >> >> >> 42 42
> >> >> >> > r6 42 42
> 42
> >> 42
> >> >> 42
> >> >> >> 42 42
> >> >> >> >
> >> >> >> > . mata : mat_foo =
> st_matrix("foo")
> >> >> >> >
> >> >> >> > . mata : mat_foo
> >> >> >> >
> >> 1
> >> >> >> 2 3 4
> >> 5
> >> >> >> 6 7
> >> >> >> >
> >> >> >>
> >> >> +------------------------------------+
> >> >> >> > 1 |
> >> >> >>
> >> >>
> >>
> 42 42 42 42 42 42 42
> >> >> >> |
> >> >> >> > 2 |
> >> >> >>
> >> >>
> >>
> 42 42 42 42 42 42 42
> >> >> >> |
> >> >> >> > 3 |
> >> >> >>
> >> >>
> >>
> 42 42 42 42 42 42 42
> >> >> >> |
> >> >> >> > 4 |
> >> >> >>
> >> >>
> >>
> 42 42 42 42 42 42 42
> >> >> >> |
> >> >> >> > 5 |
> >> >> >>
> >> >>
> >>
> 42 42 42 42 42 42 42
> >> >> >> |
> >> >> >> > 6 |
> >> >> >>
> >> >>
> >>
> 42 42 42 42 42 42 42
> >> >> >> |
> >> >> >> >
> >> >> >>
> >> >> +------------------------------------+
> >> >> >> >
> >> >> >> > . mata : st_matrix("foo",
> mat_foo :/
> >> 7)
> >> >> >> >
> >> >> >> > . mat li foo
> >> >> >> >
> >> >> >> > foo[6,7]
> >> >> >> > c1
> >> c2 c3
> >> >> >> c4 c5 c6 c7
> >> >> >> >
> >> >> >>
> >> >>
> >>
> r1 6 6 6 6 6 6 6
> >> >> >> >
> >> >> >>
> >> >>
> >>
> r2 6 6 6 6 6 6 6
> >> >> >> >
> >> >> >>
> >> >>
> >>
> r3 6 6 6 6 6 6 6
> >> >> >> >
> >> >> >>
> >> >>
> >>
> r4 6 6 6 6 6 6 6
> >> >> >> >
> >> >> >>
> >> >>
> >>
> r5 6 6 6 6 6 6 6
> >> >> >> >
> >> >> >>
> >> >>
> >>
> r6 6 6 6 6 6 6 6
> >> >> >> >
> >> >> >> > --- On Thu, 11/1/12, Bianca
> B. <[email protected]>
> >> >> >> wrote:
> >> >> >> >
> >> >> >> >> From: Bianca B. <[email protected]>
> >> >> >> >> Subject: Stata matrix to
> Mata
> >> matrix form
> >> >> >> >> To: [email protected]
> >> >> >> >> Date: Thursday, November
> 1, 2012,
> >> 7:25 AM
> >> >> >> >> Hi Stata users,
> >> >> >> >>
> >> >> >> >> Does anyone know how can
> I get
> >> stata
> >> >> matrix in mata
> >> >> >> matrix?
> *
> * For searches and help try:
> * http://www.stata.com/help.cgi?search
> * http://www.stata.com/support/faqs/resources/statalist-faq/
> * http://www.ats.ucla.edu/stat/stata/
>
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/