horzcat different size rows; zero padding
Afficher commentaires plus anciens
Hi,
I have 6 matrices; all are 7 columns. The number of rows is 12, 14, 16, 17, 17, 17. I want to pick off the first row from each and put them into one matrix.
I create a matrix of zeros that is the final size I need of (17,7), but when I run the following I get a 'CAT arguments dimensions are not consistent'.
A = zeros(17,7);
A = [B(:,1) C(:,1) D(:,1) E(:,1) F(:,1) G(:,1)];
The problem is that the first row does not keep the trailing zeros after the 12 cells are filled with the data. I don't understand why this happens. How can I concatenate these rows?
Thank you!
1 commentaire
Oleg Komarov
le 27 Mai 2011
Not clear what are you trying to do.
Post the result of "whos" with B-G only in the workspace.
Réponse acceptée
Plus de réponses (2)
Matt Fig
le 27 Mai 2011
A = [1,2,3,4].';
B = [1 2 3 4 5 6].';
C = zeros(6,2);
C(1:length(A),1)= A % Fill first column with A
C(1:length(B),2)= B % Fill second column with B
Jan Siegmund
le 18 Mai 2020
Modifié(e) : Jan Siegmund
le 18 Mai 2020
If the input data is a cell array of column vectors, you might consider this:
a = {ones(5,1) ones(8,1)}; %test data
len = max(cellfun('length',a));
b = cellfun(@(x)[x;zeros(len-size(x,1),1)],a,'UniformOutput',false);
out = [b{:}]
Catégories
En savoir plus sur Performance and Memory 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!