how to reverse a matrix from bottom to top row wise and then pick out odd rows?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
hello
if i have this matrix A =
10000
00010
10101
10011
10000
00001
the rows can be from 1 to 2.^m-2 where m lets say 5. so that gives us 30 rows. i want to flip these rows from bottom to top so that the last row is the first, the second last becomes the second, the third last the third.
flipped A =
00001
10000
10011
10101
00010
10000
then i want to pick the odd numbered rows from the flipped order (the first, third, fifth) such that 1:2:2t rows are picked out and displayed as shown below (here t = 3)
00001
10011
00010
can anyone help out with this?
regards
1 Kommentar
Jan
am 24 Apr. 2013
What doe "matrix A = 10000 ..." exactly mean? Is this a CHAR matrix /then you forgot the quotes), or a double matrix (then the leading zeros are meaningless). It is not clear, what "the rows can be from 1 to 2.^m-2" means. Do you mean the size of the matrix or the decimal representatioon of the values of the elements or rows?
Akzeptierte Antwort
Andrei Bobrov
am 24 Apr. 2013
Bearbeitet: Andrei Bobrov
am 24 Apr. 2013
A =[10000
00010
10101
10011
10000
00001];
A = num2str(A);
b = strrep(A(:)',' ','0');
A(:) = b; % A is string
out1 = flipud(A);
out2 = out1(1:2:end,:);
ADD after the Malik's comment
A = [ 1 1 0 0 0 0
1 0 1 0 0 1
1 0 1 0 0 1
1 0 1 1 1 1
1 0 1 0 0 1
1 1 1 0 1 1
1 0 1 1 1 1
1 1 1 1 0 1
1 0 1 0 0 1
1 1 1 0 1 1
1 1 1 0 1 1
1 1 0 1 1 1
1 0 1 1 1 1
1 1 0 1 1 1
1 1 1 1 0 1
1 0 0 1 0 1
1 0 1 0 0 1
1 0 1 1 1 1
1 1 1 0 1 1
1 1 1 1 0 1
1 1 1 0 1 1
1 1 0 1 1 1
1 1 0 1 1 1
1 0 0 1 0 1
1 0 1 1 1 1
1 1 1 1 0 1
1 1 0 1 1 1
1 0 0 1 0 1
1 1 1 1 0 1
1 0 0 1 0 1
1 0 0 1 0 1];
out1 = flipud(A);
out2 = out1(1:2:end,:);
6 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Type Conversion 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!