Pad empty spaces in matrix with 0
Ältere Kommentare anzeigen
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 Kommentare
Rik
am 12 Mai 2019
Are these rows each in a cell? What is your exact data structure?
Meg Cullen
am 12 Mai 2019
Bearbeitet: Meg Cullen
am 12 Mai 2019
Image Analyst
am 12 Mai 2019
What are the "empty spaces" - do you want to just pad the right hand side?
Akzeptierte Antwort
Weitere Antworten (1)
madhan ravi
am 12 Mai 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 Kommentare
Rik
am 12 Mai 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
am 12 Mai 2019
Wow ,didn’t know that function so +1 .
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!