MATLAB: How to optimise the code with cell

catformatrix

for this program i am calculating A by using for
A = cell(1,3);
for k = 1:3
A{k} = B*k + C*k;
end
And then every matrix is to be compared to get a Optimal matrix containg minimum of every every A matrix
Comparison = cat(3,A{1},A{2},A{3});
MinimumMatrix = min(Comparison./(Comparison~=0),[],3);
This is a example code
Nut in actual program i have to calculate
k=1000:10:5500
What function should be used in
Comparison = cat(3,A{1000},A{1010},.. A{5500});
to avoid writing the name of each variable for comparison matrix

Best Answer

Why are you using cell arrays in the first place? It's just slower and has more overhead than matrices. You can just create your final matrix directly
stepcount = 3
A = zeros([size(B), stepcount]);
for k = 1:stepcount
A(:, :, k) = B*k + C*k;
end
If you really want to use an intermediate cell array, then you can use the expansion of cell arrays into comma-separated lists:
Comparison = cat(3,A{1},A{2},A{3});
%is equivalent to

Comparison = cat(3,A{:});
Comparison = cat(3,A{1000},A{1010},.. A{5500});
%is equivalent to
Comparison = cat(3,A{1000:5500});