I'm trying to generate C-Code from a MATLAB function. I have to work with cell arrays (I cannot change this) and there are occurring two problems:
1: I want to truncate a cell array, i.e.
arr = cell(1,n);
% ...
arr = arr(1:m); % with m<n
MATLAB Coder forbids the (...) indexing, so I tried the following
tmp = arr;
arr = cell(1,m);
for i = 1:m
arr{i} = tmp{i};
end
But this will throw the error, that 'Matlab is unable to determine that every element of tmp{:} is assigned before this line'. The same happens if I assign every element of arr to tmp in a loop.
- The same problem occurs when I try to concatenate two cell arrays.
Do you know how to fix this, so that MATLAB Coder won't throw any errors.
tmp = arr;as a copy... maybe the corer takes a pointer sometimes and its getting confused here. Can you initialize temp before the copy withtmp=cell(1,n);? Maybe even making a loop fortmp = arr;, instead of a single linearrtotmpby a loop, but that gave the same error message.