How can I shift rows and columns, and also replicating Sub matrixes.

72 views (last 30 days)
First question, I have a 4x4 magic matrix, A. I want to create a new matrix D by shifting the rows in matrix A down by one, and by shifting the columns left by 2. What would follow D= ?
Second question I have a 2x2 matrix B. I want to create a 4x4 matrix by replicating B 4 times. How would I go about doing that?

Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 20 Jun 2014
A=reshape(1:16,4,4) , % First example
A=circshift(A,[1 0]) % Shift down by 1
A=circshift(A,[0 -2]) % Shift left by 2
B=[1 2;3 4] % Second example
B=repmat(B,2,2);

David Sanchez
David Sanchez on 20 Jun 2014
A = magic(4);
D = [A(end,:); A(1:end-1,:)]; % shift rows down
D = [D(:,3:end) D(:,1:2)]; % shift colums leftx2
B = rand(2); %2x2 matrix
G = [B B; B B];%4x4 matrix by replicating B 4 times

Andrei Bobrov
Andrei Bobrov on 20 Jun 2014
A = magic(4);
D = circshift(A,[1,2]);
B = randi(10,2);
out = kron(ones(2),B);

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!