merge six columns with zeros step by step end of each one
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
A=[1 2 3 6 ];
B=[4 5 5 6 9 8 7 6 9 6 8 6 9];
D=[4 1 2 3 5 68 9 6 9 6 9 6 9 6 9 63 45 82 85 96 74 52 63 10 30 23 65 6 66 33 66 ];
E=[5 4 6 5 4 8 9 6 9 6 8 6];
F=[4 8 9 7 8 6 9 6 8 2 21 3 6 56 36];
G=[7 8 9 9 6 8 6 45 25 33 66 33 14 25 36 36 12];
A1=[A;zeros(size(A))]';
B1=[zeros(size(B));B]';
D1=[zeros(size(D));D]';
E1=[zeros(size(E));E]';
F1=[zeros(size(F));F]';
G1=[zeros(size(G));G]';
C=[A1;B1;D1;E1;F1;G1]
i would like to get in nx6 columns .
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
6 0 0 0 0 0
0 4 0 0 0 0
0 5 0 0 0 0
0 5 0 0 0 0
0 6 0 0 0 0
0 9 0 0 0 0
0 8 0 0 0 0
0 7 0 0 0 0
0 6 0 0 0 0
0 9 0 0 0 0
0 6 0 0 0 0
0 8 0 0 0 0
0 6 0 0 0 0
0 9 0 0 0 0
0 0 4 0 0 0
0 0 1
0 2
0 3
0 5
0 68
0 9
0 6
0 9
6
9
6
9
6
9
63
45
82
85
96
74
52
63
10
30
23
65
6
66
33
66
In this way need to get how to write program .Please help me in this. Thank you.
0 commentaires
Réponse acceptée
dpb
le 7 Août 2022
Modifié(e) : dpb
le 7 Août 2022
It would be far easier to write code if you would use cell array for the existing data instead of a bunch of named variables -- but, the way to build the array would be to compute the total length by adding numel() of all to determine the ending array size and allocate it...then place each vector where it belongs in the array.
N1=numel(A);
N2=numel(B);
...
N=N1+N2+...
O=zeros(N,6);
O(1:N1,1)=A;
O(N1+1:N1+N2+1,2)=B;
...
You can see the pattern; if you had all in a cell array of a given name, then you could write a loop that would address each in turn instead of writing out each explicitly...
A={[1 2 3 6 ];
[4 5 5 6 9 8 7 6 9 6 8 6 9];
[4 1 2 3 5 68 9 6 9 6 9 6 9 6 9 63 45 82 85 96 74 52 63 10 30 23 65 6 66 33 66 ];
[5 4 6 5 4 8 9 6 9 6 8 6];
[4 8 9 7 8 6 9 6 8 2 21 3 6 56 36];
[7 8 9 9 6 8 6 45 25 33 66 33 14 25 36 36 12]};
N=cellfun(@numel,A);
B=zeros(sum(N),numel(A));
i1=1;
for i=1:numel(A)
B(i1:i1+N(i)-1,i)=A{i};
i1=i1+N(i);
end
Caution, air code -- untested...
2 commentaires
Bruno Luong
le 7 Août 2022
indeed, you must specify different number of colums
B=zeros(sum(N,numel(A)))
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!