How do I create a new array each time there is an empty matrix in a cell array.

2 views (last 30 days)
I have a cell array and I want to create a new array each time an empty cell is encountered. so for example, I may have: [1 2 3] [4 5 6] [7 8 9] [] [3 2 1] [4 7 6] [] [6 8 7]
So in this case I would want 3 separate arrays created with the following:
array1= [1 2 3 4 5 6 7 8 9] array2= [3 2 1 4 7 6] array3= [6 8 7]

Accepted Answer

James Tursa
James Tursa on 12 Oct 2017
Edited: James Tursa on 12 Oct 2017
One way:
C = your cell array
x = [0, find(cellfun(@isempty,C)), numel(C)+1];
n = numel(x)-1;
result = cell(1,n);
for k=1:n
result{k} = cell2mat(C(x(k)+1:x(k+1)-1));
end
result(cellfun(@isempty,result)) = [];

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!