Re: Creating Matrix from vectors specific issue.
- To: mathgroup at smc.vnet.net
- Subject: [mg100771] Re: Creating Matrix from vectors specific issue.
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sat, 13 Jun 2009 06:04:53 -0400 (EDT)
On 6/12/09 at 5:46 AM, basukinjal at gmail.com (Kinu) wrote: >Thanks to all who replied before My exact problem is as follows.. I >am getting vectors from my program which is of the form v1 = >{{1},{2},{3}}; v2 = {{4},{5},{6}}; BUT NOT v1 = {1,2,3} and v2 = >{4,5,6} >Now if i use A = {v1,v2} and then Transpose[A] i am getting the >required matrix only in the 2nd case i.e when v1 = {1,2,3} and >similarly v2. However when i use the same A = {v1,v2} in the 1st >case and then Transpose[] i.e when v1 = {{1},{2},{3}} and similarly >v2, i am not getting the required matrix. If anyone would help me >with this specific point it will be helpful. >I have also seen that the dimension in case 1 is {3,1} while that in >case 2 is {3}. If there is any way to interchange the two .. that >also will suffice. i.e if i can change {{1},{2},{3}} to {1,2,3} that >will also suffice. You really ought to read the tutorials on working with lists in Mathematica. To convert any multi-dimensional list to a 1D list, use Flatten. For example, In[1]:= v1 = {{1}, {2}, {3}}; v2 = {{4}, {5}, {6}}; In[3]:= Flatten[v1] Out[3]= {1,2,3} So, the desired result can be obtained with Transpose as follows: In[4]:= Transpose[Flatten /@ {v1, v2}] Out[4]= {{1, 4}, {2, 5}, {3, 6}} Or even more directly with ArrayFlatten as follows: In[5]:= ArrayFlatten@{{v1, v2}} Out[5]= {{1, 4}, {2, 5}, {3, 6}}