i have a 48*48*3 matrix , i want to convert it to 48*48 matrix where each element of the matrix will show a list of 3 characters in a cell. how to do it?

2 views (last 30 days)
for eg-
i need this matrix to look like {1,9} {2,7} {3,8}.......
  3 Comments

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 14 Sep 2018
Edited: Image Analyst on 14 Sep 2018
For all the numbers, you can try this:
[rows, columns, numSlices] = size(m);
index = 1;
ca = cell(1, rows*columns); % Preallocate
for row = 1 : rows
for col = 1 : columns
ca{index} = m(row, col, :);
index = index + 1;
end
end

More Answers (2)

Matt J
Matt J on 14 Sep 2018
Edited: Matt J on 14 Sep 2018
Acell=cellfun( @(c) c(:).', num2cell(A,3), 'uni',0 );

Image Analyst
Image Analyst on 14 Sep 2018
Did you try something like this:
[rows, columns, numSlices] = size(m);
index = 1;
ca = cell(1, rows*columns); % Preallocate
for row = 1 : rows
for col = 1 : columns
ca{index} = [m(row, col, 1), m(row, col, end)];
index = index + 1;
end
end

Categories

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

Tags

Community Treasure Hunt

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

Start Hunting!