How to insert copies of columns inside matrix with a specific condition?

So I have a matrix, lets call it A. A has 10 rows and 25 columns. I want to create 10 copies of each column, and insert those copies right after that column, and preceding the next column. Something like this:
[column 1 copy 1 copy 2 copy 3.........copy 10 column 2 copy 1...and so on until column 25]
Is there any way for me to do this in MATLAB? Any help appreciated!!!!

 Accepted Answer

Hi Zuha,
You can use reshape and repmat functions to do this.
Ar = repmat(A,10,1);
out = reshape(Ar,10,[]);
Hope this helps.
Regards,
Sriram

3 Comments

Hi! When I do this, it inserts the columns at the end of the matrix. I want something that will insert the new columns in between the two existing columns.
Hi Zuha,
Did you use even the reshape function?
When i sued both, i exactly get what you are looking for.
A = rand(10,25); % Size 10 x 25
Ar = repmat(A,11,1); % size 110 x 25 (For 10 copies use, 10+1 here)
out = reshape(Ar,10,[]); % Size 10 x 275
Attached the small image, to show this.
Regards,
Sriram
Okay that worked! Thanks so much :)

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!