Reading the matrix elements row wise
23 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Salahuddin Tariq
el 30 de Dic. de 2020
Comentada: Salahuddin Tariq
el 31 de Dic. de 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 comentarios
Respuesta aceptada
Paul Hoffrichter
el 31 de Dic. de 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 comentarios
Paul Hoffrichter
el 31 de Dic. de 2020
Editada: Paul Hoffrichter
el 31 de Dic. de 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
Más respuestas (1)
Paul Hoffrichter
el 30 de Dic. de 2020
Editada: Paul Hoffrichter
el 30 de Dic. de 2020
A = [1 2 3; 4 5 6];
Atr = transpose(A);
Atr(1:6)
ans =
1 2 3 4 5 6
0 comentarios
Ver también
Categorías
Más información sobre Linear Algebra en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!