Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
316 views
in Technique[技术] by (71.8m points)

wolfram mathematica - How to prepend a column to a matrix?

Ok, imagine I have this Matrix: {{1,2},{2,3}}, and I'd rather have {{4,1,2},{5,2,3}}. That is, I prepended a column to the matrix. Is there an easy way to do it?

My best proposal is this:

PrependColumn[vector_List, matrix_List] := 
 Outer[Prepend[#1, #2] &, matrix, vector, 1]

But it obfuscates the code and constantly requires loading more and more code. Isn't this built in somehow?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Since ArrayFlatten was introduced in Mathematica 6 the least obfuscated solution must be

matrix = {{1, 2}, {2, 3}}
vector = {{4}, {5}}

ArrayFlatten@{{vector, matrix}}

A nice trick is that replacing any matrix block with 0 gives you a zero block of the right size.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...