<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>MaplePrimes - answers and comments on Question, How to extract triangular matrix into a vector (column)?</title>
    <link>http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column</link>
    <language>en-us</language>
    <copyright>2026 Maplesoft, A Division of Waterloo Maple Inc.</copyright>
    <generator>Maplesoft Document System</generator>
    <lastBuildDate>Wed, 10 Jun 2026 06:58:22 GMT</lastBuildDate>
    <pubDate>Wed, 10 Jun 2026 06:58:22 GMT</pubDate>
    <itunes:subtitle />
    <itunes:summary />
    <description>The latest answers and comments added to the Question, How to extract triangular matrix into a vector (column)?</description>
    <image>
      <url>http://www.mapleprimes.com/images/mapleprimeswhite.jpg</url>
      <title>MaplePrimes - answers and comments on Question, How to extract triangular matrix into a vector (column)?</title>
      <link>http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column</link>
    </image>
    <item>
      <title>First question</title>
      <link>http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column?ref=Feed:MaplePrimes:How to extract triangular matrix into a vector (column)?:Comments#answer140271</link>
      <itunes:summary>&lt;p&gt;&lt;span class="mainBody document"&gt;To create a column vector of the none zero entries in "UpperTriangle(m) you can do:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;with(ArrayTools):&lt;br&gt;m:=&amp;lt;1,2,3,4|3,2,1,0|x,y,z,z0|a,a,a,a|b,b,b,b&amp;gt;;&lt;br&gt;lscol:=&amp;lt;seq(1-AddAlongDimension(m,2)[i],i=1..4)&amp;gt;;&lt;br&gt;m:=&amp;lt;m|lscol&amp;gt;;&lt;br&gt;M := UpperTriangle(m);&lt;br&gt;V := Vector( convert( select( x -&amp;gt; x&amp;lt;&amp;gt;0, M ), list ) );&lt;br&gt;&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;I see no way to &lt;em&gt;quickly&lt;/em&gt; reconstruct the upper triangle matrix form the vector V&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;&lt;span class="mainBody document"&gt;To create a column vector of the none zero entries in "UpperTriangle(m) you can do:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;with(ArrayTools):&lt;br&gt;m:=&amp;lt;1,2,3,4|3,2,1,0|x,y,z,z0|a,a,a,a|b,b,b,b&amp;gt;;&lt;br&gt;lscol:=&amp;lt;seq(1-AddAlongDimension(m,2)[i],i=1..4)&amp;gt;;&lt;br&gt;m:=&amp;lt;m|lscol&amp;gt;;&lt;br&gt;M := UpperTriangle(m);&lt;br&gt;V := Vector( convert( select( x -&amp;gt; x&amp;lt;&amp;gt;0, M ), list ) );&lt;br&gt;&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;I see no way to &lt;em&gt;quickly&lt;/em&gt; reconstruct the upper triangle matrix form the vector V&lt;/p&gt;</description>
      <guid>140271</guid>
      <pubDate>Tue, 13 Nov 2012 16:30:34 Z</pubDate>
      <itunes:author>Adri van der Meer</itunes:author>
      <author>Adri van der Meer</author>
    </item>
    <item>
      <title>Reconstruction of M</title>
      <link>http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column?ref=Feed:MaplePrimes:How to extract triangular matrix into a vector (column)?:Comments#comment140278</link>
      <itunes:summary>&lt;p&gt;...so I make a procedure to do this:&lt;/p&gt;
&lt;pre&gt;RestoreMatrix := proc(r,c,V)&lt;br&gt;local M, i,j,k;&lt;br&gt;M := Matrix(r,c):&lt;br&gt;k := 1:&lt;br&gt;for i to r do&lt;br&gt;&amp;nbsp;&amp;nbsp; for j to i do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M[j,i] := V[k]:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k := k+1&lt;br&gt;&amp;nbsp;&amp;nbsp; end do&lt;br&gt;end do;&lt;br&gt;for i from r+1 to c do&lt;br&gt;&amp;nbsp;&amp;nbsp; for j to r do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M[j,i] := V[k];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k := k+1&lt;br&gt;&amp;nbsp;&amp;nbsp; end do&lt;br&gt;end do;&lt;br&gt;return M&lt;br&gt;end proc;&lt;br&gt;&lt;br&gt;RestoreMatrix(4,6,V);&lt;/pre&gt;</itunes:summary>
      <description>&lt;p&gt;...so I make a procedure to do this:&lt;/p&gt;
&lt;pre&gt;RestoreMatrix := proc(r,c,V)&lt;br&gt;local M, i,j,k;&lt;br&gt;M := Matrix(r,c):&lt;br&gt;k := 1:&lt;br&gt;for i to r do&lt;br&gt;&amp;nbsp;&amp;nbsp; for j to i do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M[j,i] := V[k]:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k := k+1&lt;br&gt;&amp;nbsp;&amp;nbsp; end do&lt;br&gt;end do;&lt;br&gt;for i from r+1 to c do&lt;br&gt;&amp;nbsp;&amp;nbsp; for j to r do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; M[j,i] := V[k];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; k := k+1&lt;br&gt;&amp;nbsp;&amp;nbsp; end do&lt;br&gt;end do;&lt;br&gt;return M&lt;br&gt;end proc;&lt;br&gt;&lt;br&gt;RestoreMatrix(4,6,V);&lt;/pre&gt;</description>
      <guid>140278</guid>
      <pubDate>Tue, 13 Nov 2012 20:53:42 Z</pubDate>
      <itunes:author>Adri van der Meer</itunes:author>
      <author>Adri van der Meer</author>
    </item>
    <item>
      <title>Matrix constructor</title>
      <link>http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column?ref=Feed:MaplePrimes:How to extract triangular matrix into a vector (column)?:Comments#comment140282</link>
      <itunes:summary>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column#comment140278"&gt;@Adri van der Meer&lt;/a&gt; The custom do-loop can be faster, but just for fun,&lt;/p&gt;
&lt;pre&gt;G:=(m,n,W) -&amp;gt; Matrix(m,n,(i,j)-&amp;gt;`if`(i&amp;gt;j,0,W[(i-1)*n-((i-1)*(i)/2)+j])):

G(4,6,V);
&lt;/pre&gt;</itunes:summary>
      <description>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column#comment140278"&gt;@Adri van der Meer&lt;/a&gt; The custom do-loop can be faster, but just for fun,&lt;/p&gt;
&lt;pre&gt;G:=(m,n,W) -&amp;gt; Matrix(m,n,(i,j)-&amp;gt;`if`(i&amp;gt;j,0,W[(i-1)*n-((i-1)*(i)/2)+j])):

G(4,6,V);
&lt;/pre&gt;</description>
      <guid>140282</guid>
      <pubDate>Tue, 13 Nov 2012 23:15:02 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
    <item>
      <title>Indexing function</title>
      <link>http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column?ref=Feed:MaplePrimes:How to extract triangular matrix into a vector (column)?:Comments#comment140394</link>
      <itunes:summary>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column#comment140282"&gt;@acer&lt;/a&gt; , &lt;span&gt; I also tried to find an indexing function, but I didn't succeed.&lt;/span&gt;&lt;br&gt;But your quick solution doesn't work:&lt;/p&gt;
&lt;pre&gt;restart;&lt;br&gt;m := LinearAlgebra:-RandomMatrix(4,6):&lt;br&gt;M := ArrayTools:-UpperTriangle(m);&lt;br&gt;V := Vector( convert( select( x -&amp;gt; x&amp;lt;&amp;gt;0, M ), list ) ):&lt;br&gt;G:=(m,n,W) -&amp;gt; Matrix(m,n,(i,j)-&amp;gt;`if`(i&amp;gt;j,0,W[(i-1)*n-((i-1)*(i)/2)+j])):&lt;br&gt;G(4,6,V);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/pre&gt;</itunes:summary>
      <description>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column#comment140282"&gt;@acer&lt;/a&gt; , &lt;span&gt; I also tried to find an indexing function, but I didn't succeed.&lt;/span&gt;&lt;br&gt;But your quick solution doesn't work:&lt;/p&gt;
&lt;pre&gt;restart;&lt;br&gt;m := LinearAlgebra:-RandomMatrix(4,6):&lt;br&gt;M := ArrayTools:-UpperTriangle(m);&lt;br&gt;V := Vector( convert( select( x -&amp;gt; x&amp;lt;&amp;gt;0, M ), list ) ):&lt;br&gt;G:=(m,n,W) -&amp;gt; Matrix(m,n,(i,j)-&amp;gt;`if`(i&amp;gt;j,0,W[(i-1)*n-((i-1)*(i)/2)+j])):&lt;br&gt;G(4,6,V);&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/pre&gt;</description>
      <guid>140394</guid>
      <pubDate>Thu, 15 Nov 2012 21:09:02 Z</pubDate>
      <itunes:author>Adri van der Meer</itunes:author>
      <author>Adri van der Meer</author>
    </item>
    <item>
      <title>by columns of M</title>
      <link>http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column?ref=Feed:MaplePrimes:How to extract triangular matrix into a vector (column)?:Comments#comment140398</link>
      <itunes:summary>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column#comment140394"&gt;@Adri van der Meer&lt;/a&gt; Sorry, perhaps I didn't notice that V was constructed by reading along columns of M. So naturally you would want to reconstruct it by laying down entries from Vector V in the same way.&lt;/p&gt;
&lt;p&gt;Is this a fix-up, to lay down the Matrix, columnwise, from given Vector V with that interpretation?&lt;/p&gt;
&lt;pre&gt;Gr:=(m,n,W) -&amp;gt; Matrix(m,n,
                     (i,j)-&amp;gt;`if`(i&amp;gt;j, 0,
                                 W[((j-1)*(j)/2)-`if`(j&amp;gt;m,
                                                     (j-m-1)*(j-m)/2, 0)+i])):
&lt;/pre&gt;
&lt;p&gt;I would guess that a do-loop could be faster than such an indexing function due to the hit from calling `if`(i&amp;gt;j,...) on all entries (because with nested loops the upper value for the inner loop's index can be a function of the outer loop's index). And indeed, your procedure performs faster.&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/139358-How-To-Extract-Triangular-Matrix-Into-A-Vector-column#comment140394"&gt;@Adri van der Meer&lt;/a&gt; Sorry, perhaps I didn't notice that V was constructed by reading along columns of M. So naturally you would want to reconstruct it by laying down entries from Vector V in the same way.&lt;/p&gt;
&lt;p&gt;Is this a fix-up, to lay down the Matrix, columnwise, from given Vector V with that interpretation?&lt;/p&gt;
&lt;pre&gt;Gr:=(m,n,W) -&amp;gt; Matrix(m,n,
                     (i,j)-&amp;gt;`if`(i&amp;gt;j, 0,
                                 W[((j-1)*(j)/2)-`if`(j&amp;gt;m,
                                                     (j-m-1)*(j-m)/2, 0)+i])):
&lt;/pre&gt;
&lt;p&gt;I would guess that a do-loop could be faster than such an indexing function due to the hit from calling `if`(i&amp;gt;j,...) on all entries (because with nested loops the upper value for the inner loop's index can be a function of the outer loop's index). And indeed, your procedure performs faster.&lt;/p&gt;</description>
      <guid>140398</guid>
      <pubDate>Thu, 15 Nov 2012 23:16:21 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
  </channel>
</rss>