MATLAB: How would I add several matrices into one? (assembling global stiffness matrix for FEA)

matrixmatrix additionmatrix manipulation

I want to add several 4X4 matrices into one large one (see attached image for my general goal). This is to assemble a global stiffness matrix of several bar elements. I will have 205 matrices to add into 1 large one, but I figure it would be easiest to get an understanding by attempting to assemble the matrices in the image I atttached.
here is how I presume you'd start:
A = [1 1; 1 1];
B = [1 1; 1 1];
K = zeros(3,3); %empty matrix to add A & B to
How would I continue?

Best Answer

This is easy when you store all of the matrices in one cell array, then you just need a simple for loop:
>> C = {[1,1;1,1],[1,1;1,1]}; % <- all matrices
>> N = numel(C);
>> M = zeros(1+N,1+N);
>> for k = 1:N, M(k:k+1,k:k+1) = M(k:k+1,k:k+1)+C{k}; end
>> M
M =
1 1 0
1 2 1
0 1 1
A more illustrative example:
>> C = {[1,1;1,1],[1,1;1,1],[2,3;4,5],[6,7;8,9]};
>> N = numel(C);
>> M = zeros(1+N,1+N);
>> for k = 1:N, M(k:k+1,k:k+1) = M(k:k+1,k:k+1)+C{k}; end
>> M
M =
1 1 0 0 0
1 2 1 0 0
0 1 3 3 0
0 0 4 11 7
0 0 0 8 9
Here are some other answers on this topic: