MATLAB: What’s the solution

For example: If I have matrix A and Matrix B:
A =
7 4 1
4 5 6
3 6 9
>> B = zeros(4,4)
B =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
I want I want element (3,2) from matrix B with size (4,4) to try the values of the first column from matrix A with size (3,3) one by one and at each time produce the new matrix. So, the output will be:
B =
0 0 0 0
0 0 7 0
0 0 0 0
0 0 0 0
B =
0 0 0 0
0 0 4 0
0 0 0 0
0 0 0 0
B =
0 0 0 0
0 0 3 0
0 0 0 0
0 0 0 0
How can I do this ?

Best Answer

Here is one easy way, by generating one 3D array B and allocating all values of A in one go:
>> A = [7,4,1;4,5,6;3,6,9];
>> B = zeros(4,4,numel(A));
>> B(2,3,:) = A(:);
and testing each page of B, shows that it has all of the correct matrices:
>> B(:,:,1)
ans =
0 0 0 0
0 0 7 0
0 0 0 0
0 0 0 0
>> B(:,:,2)
ans =
0 0 0 0
0 0 4 0
0 0 0 0
0 0 0 0
>> B(:,:,3)
ans =
0 0 0 0
0 0 3 0
0 0 0 0
0 0 0 0
>> B(:,:,4)
ans =
0 0 0 0
0 0 4 0
0 0 0 0
0 0 0 0
etc