Convert subscripts to linear indices with dynamic matrix size
Ältere Kommentare anzeigen
Hi all,
I have a matrix with a dynamic size, e.g. M x N. Each row of the matrix indicates subscripts of an element in a N-D matrix.
Do you know how to convert the subscript matrix into a linear index vector without listing the subscripts of every dimension as in sub2ind function?
Thanks!
Akzeptierte Antwort
Weitere Antworten (1)
Gaurav Garg
am 10 Aug. 2020
Bearbeitet: Gaurav Garg
am 10 Aug. 2020
0 Stimmen
Hi Soan,
You can loop over all the rows, which indicate subscripts and run sub2ind function; and store the results in an array.
2 Kommentare
Soan Duong
am 10 Aug. 2020
Gaurav Garg
am 10 Aug. 2020
Soan,
Instead of using the ind2sub function, you can convert N-D array index to 1-D index. I would provide you with an example for N=2 -
For a 2-D array of dimensions M x N and an element A(i,j) in it-
A(i,j) = (j-1) * N + i
Since MATLAB stores data in column-major format, you would skip (j-1) columns resulting to (j-1)*N elements and ith element from here would be your resultant array.
Kategorien
Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!