Squeezing a two-dimensional array into a one-dimensional array without using a FOR loop
23 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I would like to be able to squeeze a two-dimensional array into a one-dimensional array. Basically, I would like to be able to "erase" the rows of a two-dimensional array. Is there a straight forward way to do this?
As a simple example, suppose that I have an two-dimensional array A:
A=[1 2 3 4; 5 6 7 8; 9 10 11 12];
I would like to have a function that will produce the following one-dimensional array B:
B=[1 2 3 4 5 6 7 8 9 10 11 12];
I can do the following:
A=[1 2 3 4; 5 6 7 8; 9 10 11 12];
B=zeros(1,size(A,1)*size(A,2));
k=1;
for i=1:size(A,1)
for j=1:size(A,2)
B(k)=A(i,j);
k=k+1;
end
end
which I think is a correct algorithm. But, is there a better way to do this, perhaps without using a FOR loop?
Thank you very much for your time.
Andrew DeYoung
Carnegie Mellon University
0 commentaires
Réponse acceptée
Paulo Silva
le 29 Juin 2011
doc reshape
A=[1 2 3 4; 5 6 7 8; 9 10 11 12]
reshape(A',1,numel(A))
0 commentaires
Plus de réponses (1)
Viraj
le 23 Fév 2023
A=[1 2 3 4; 5 6 7 8; 9 10 11 12];
B=zeros(1,size(A,1)*size(A,2));
k=1;
for i=1:size(A,1)
for j=1:size(A,2)
B(k)=A(i,j);
k=k+1;
end
end
0 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!