Squeezing a two-dimensional array into a one-dimensional array without using a FOR loop
24 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Andrew
am 29 Jun. 2011
Beantwortet: Viraj
am 23 Feb. 2023
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 Kommentare
Akzeptierte Antwort
Paulo Silva
am 29 Jun. 2011
doc reshape
A=[1 2 3 4; 5 6 7 8; 9 10 11 12]
reshape(A',1,numel(A))
0 Kommentare
Weitere Antworten (1)
Viraj
am 23 Feb. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!