Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • anti diagonal matrix in mata?

    Is there a function that creates anti diagonal matrix from some vector, something like reverse diag() ?

  • #2
    If it exists I have not been able to find one. But you could make one yourself by using a permutation vector.

    Code:
    ------------------------------------------------- mata (type end to exit) ------------------------------------------
    : 
    : real matrix antiDiag(real colvector v)
    > {
    > 
    >                 real colvector p
    >                 
    >                 p = 1::rows(v)
    >                 _sort(p,-1)
    >                 
    >                 return(diag(v)[,p'])
    > 
    > }
    
    : 
    : antiDiag(1::10)
             1    2    3    4    5    6    7    8    9   10
         +---------------------------------------------------+
       1 |   0    0    0    0    0    0    0    0    0    1  |
       2 |   0    0    0    0    0    0    0    0    2    0  |
       3 |   0    0    0    0    0    0    0    3    0    0  |
       4 |   0    0    0    0    0    0    4    0    0    0  |
       5 |   0    0    0    0    0    5    0    0    0    0  |
       6 |   0    0    0    0    6    0    0    0    0    0  |
       7 |   0    0    0    7    0    0    0    0    0    0  |
       8 |   0    0    8    0    0    0    0    0    0    0  |
       9 |   0    9    0    0    0    0    0    0    0    0  |
      10 |  10    0    0    0    0    0    0    0    0    0  |
         +---------------------------------------------------+
    
    : 
    : end
    --------------------------------------------------------------------------------------------------------------------

    Comment

    Working...
    X