how to reverse a matrix from bottom to top row wise and then pick out odd rows?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commento
Jan
il 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?
Risposta accettata
Andrei Bobrov
il 24 Apr 2013
Modificato: Andrei Bobrov
il 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Type Conversion in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!