Pad empty spaces in matrix with 0
Show older comments
I have a matrix of the form:
1 4 6 3 7 3
4 6 2 9
5 5 8 2 5
4 8 1 3 9 4
As I accumulated the rows of the matrix from different sources there is a inconsistency in the length of rows. How do I pad the empty spaces with 0? Please help.
3 Comments
Rik
on 12 May 2019
Are these rows each in a cell? What is your exact data structure?
Meg Cullen
on 12 May 2019
Edited: Meg Cullen
on 12 May 2019
Image Analyst
on 12 May 2019
What are the "empty spaces" - do you want to just pad the right hand side?
Accepted Answer
More Answers (1)
madhan ravi
on 12 May 2019
C={[1 4 6 3 7 3] ;...
[4 6 2 9] ;...
[5 5 8 2 5] ;...
[4 8 1 3 9 4] };
M=max(cellfun('prodofsize',C));
Wanted = cell2mat(cellfun(@(x) [x zeros(1,M-numel(x))],C,'un',0))
2 Comments
Rik
on 12 May 2019
%doesn't work:
Wanted = cell2mat(pad(C,'right',0));
%does work:
Wanted = double(cell2mat(pad(cellfun(@char,C,'un',0),'right',char(0))));
I have the feeling Matlab is getting a bit less weakly typed than it used to be.
madhan ravi
on 12 May 2019
Wow ,didn’t know that function so +1 .
Categories
Find more on Matrices and Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!