Reading the matrix elements row wise
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Salahuddin Tariq
am 30 Dez. 2020
Kommentiert: Salahuddin Tariq
am 31 Dez. 2020
Let say I have a matrix A = [1 2 3; 4 5 6], I can access its elements by writing A(1) and A(2) etc. but this index runs column wise. How to access elements of matrix row by row, for example if I write A(2), I want to get 2 and not 4.
0 Kommentare
Akzeptierte Antwort
Paul Hoffrichter
am 31 Dez. 2020
If you do not want to take the transpose of the A matrix, you can work with the subscripts instead.
A = [1 2 3; 4 5 6];
sz = size(A);
fiA = @(x) sub2ind(sz, ceil( x/sz(2) ), rem(x-1, sz(2)) + 1);
xx = 1:numel(A);
A(fiA(xx))
ans =
1 2 3 4 5 6
2 Kommentare
Paul Hoffrichter
am 31 Dez. 2020
Bearbeitet: Paul Hoffrichter
am 31 Dez. 2020
To test with another matrix:
B = [1 2 3; 4 5 6; 10 20 30; 40 50 60; 70 80 90];
sz = size(B);
fiB = @(x) sub2ind(sz, ceil( x/sz(2) ), rem(x-1, sz(2)) + 1);
yy = 1:numel(B);
B(fiB(yy))
ans =
Columns 1 through 8
1 2 3 4 5 6 10 20
Columns 9 through 15
30 40 50 60 70 80 90
A(fiA(5))
ans =
5
B(fiB(10))
ans =
40
Weitere Antworten (1)
Paul Hoffrichter
am 30 Dez. 2020
Bearbeitet: Paul Hoffrichter
am 30 Dez. 2020
A = [1 2 3; 4 5 6];
Atr = transpose(A);
Atr(1:6)
ans =
1 2 3 4 5 6
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!