How can I do linear indexing in matlab?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
TAUSIF
am 1 Mär. 2014
Kommentiert: TAUSIF
am 2 Mär. 2014
hi, Suppose I have a matrix A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]; I want to transfer it into a linear matrix as A=[1 2 5 6 3 4 7 8 9 10 13 14 11 12 15 16]; (i.e. mortan scan order in image processing). Can you help me. All my work will start after this only. I would be very greatful to you
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 1 Mär. 2014
This will get you the desired matrix, whereas the other two don't (yet unless they edit them):
% Reference arrays.
A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
desired = [1 2 5 6 3 4 7 8 9 10 13 14 11 12 15 16]
% Next two solutions don't produce desired.
B1 = A(:)'
B2 = reshape(reshape(A.',2,[]),1,[])
% This will get you the desired.
[rows, columns] = size(A)
B3 = [];
for row = 1 : 2 : rows
for col = 1 : 2 : columns
B3 = [B3, A(row, col), A(row, col+1), A(row+1, col), A(row+1, col+1)];
end
end
B3 % Report values to command window.
3 Kommentare
Image Analyst
am 1 Mär. 2014
Bearbeitet: Image Analyst
am 1 Mär. 2014
I just copied and pasted his array and your code and I got this:
desired =
1 2 5 6 3 4 7 8 9 10 13 14 11 12 15 16
B2 =
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
They looked different to me. My B3 gives this:
B3 =
1 2 5 6 3 4 7 8 9 10 13 14 11 12 15 16
which looks the same as what he desires his final out A to be.
Weitere Antworten (4)
Abdulrazzaq
am 1 Mär. 2014
Bearbeitet: Abdulrazzaq
am 1 Mär. 2014
try:
B = A(:)';
Best wishes
Abdulrazzaq
0 Kommentare
dpb
am 1 Mär. 2014
One way amongst many --
B=reshape(reshape(A.',2,[]),1,[]);
Consider how Matlab storage is in column-major order and what operation one needs to get to the desired organization from the original...
0 Kommentare
Roger Stafford
am 1 Mär. 2014
If you convert each of the integers 0:15 to binary, permute the digits appropriately, recalculate the numbers from these permuted digits, and finally add 1 to each, you will get the correct linear indexing. The same holds true for larger Z-orders.
Siehe auch
Kategorien
Mehr zu Matrix Indexing 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!