Creating a Diagonal Matrix for a vector data

Copper Contributor

Good day to everyone.

I am trying to create a diagonal matrix of dimension (900x900) from a vector data of n=900. Can someone guide me through how best I can generate the matrix? 

Thanks

 

7 Replies
Can you explain what you need a little more? I know Excel but I don't know as much about matrices :) A workbook or even an image would help a lot to explain.

ok, Thanks.@Savia 

 

I have a single column that has 900 cells contained with data. I want to split these 900-cell vector data into a diagonal matrix with each data on the column spread across the diagonal of the matrix formed. e.g. say a1=2, a2=3 and a3=5....I want a diagonal matrix that will have a1=2, b2=3,c3=5 etc. with other cells of the matrix having "0" values.

 

ogungbile_0-1584462128591.png

 

@ogungbile Thanks, that helped a lot.

 

I attach a file with both a traditional formula approach and one based on the newer dynamic array functions (Office 365 only).

Thanks, I got the code already.

@Savia 

It is:

 

{=IF(A1:A3=TRANSPOSE(A1:A3),A1:A3,"0")} 

 

Where A1:A3 indicates the vector column range. They can be adjusted as appropriate depending on the size of the vector column. For example, mine is a 900-cell vector. Therefore, I'll have:

 

{=IF(A1:A900=TRANSPOSE(A1:A900),A1:A900,"0")}

 

Thank you 

 
 
 
 
 
 
 
 
 

Capture.JPG

@Savia 

Thank you very much. This is very helpful. I really do appreciate.

@ogungbile No problem.  There are many ways of doing this, it turns out :)

You need to be careful using this approach, as it assumes that the values of the vector are unique, i.e. no two elements have the same value.