MATLAB: Creating an array of arrays

array initializationmatrix creation

I am trying to generalize creating a 2×2 diagonal array using a for loop.
q = [0.2 0.4]; %2 possible values for process noise variance
Qc1 = diag([q(1) q(1)]); %-> 2×2 matrix
Qc2 = diag([q(2) q(2)]); % -> another 2×2 matrix
Qcm = ???
for i=1:length(q)
Qcm(i) = diag([q(i) q(i)]);
end
My question is what is the correct way to initialize Qcm?

Best Answer

Use a structure array. Doh!
I'll give myself qudos