Pad empty spaces in matrix with 0
Afficher commentaires plus anciens
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 commentaires
Rik
le 12 Mai 2019
Are these rows each in a cell? What is your exact data structure?
Meg Cullen
le 12 Mai 2019
Modifié(e) : Meg Cullen
le 12 Mai 2019
Image Analyst
le 12 Mai 2019
What are the "empty spaces" - do you want to just pad the right hand side?
Réponse acceptée
Plus de réponses (1)
madhan ravi
le 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 commentaires
Rik
le 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
le 12 Mai 2019
Wow ,didn’t know that function so +1 .
Catégories
En savoir plus sur Matrices and Arrays dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!