Extract columns in a loop
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Francis Herman
am 19 Sep. 2017
Beantwortet: Walter Roberson
am 19 Sep. 2017
Hello, I am trying to extract every 2000 rows in a 20000 row column and place each extracted matrix into a separate column to create a 2000x10 matrix. However, I am getting an error: In an assignment A(:) = B, the number of elements in A and B must be the same. Any ideas?
Test=zeros(2000,10);
for w=1:10
Test(w)=zt3((2000.*(w-1))+1:2000.*w,1:1)
end
0 Kommentare
Akzeptierte Antwort
OCDER
am 19 Sep. 2017
Bearbeitet: OCDER
am 19 Sep. 2017
Is this what you want to do?
zt3 = [1:20000]'; %assuming zt3 is a 20000x1 matrix
Test = reshape(zt3, 2000, 10);
%Takes row 1:2000, 2001:4000, etc and stores each in a column in a new matrix.
4 Kommentare
OCDER
am 19 Sep. 2017
You're welcome! Oh, I should have explained why your code didn't work. You were doing Test(w) = zt3(1:2000), but Test(w) is 1 element while zt3(1:2000) is 2000 elements. The elements must match in input and output. To make the for loop work, you'd have to fix it as below:
Test = zeros(2000, 10);
for w = 1:10
Test(:, w) = zt3(2000*(w-1)+1:2000*w, 1);
%Fill all row " : " for column number w in Test
end
Weitere Antworten (1)
Walter Roberson
am 19 Sep. 2017
T = mat2cell(zt3, 2000*ones(1,size(zt3,1)/2000), size(zt3,2));
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!