Предположим, у меня есть разреженная матрица Sparstica
, которая является вертикальной конкатенацией нескольких других разреженных матриц. Когда я набираю Sparstica(:)
, я получаю список ненулевых элементов. В левом столбце будет указатель элемента, в правом столбце будет ненулевой элемент.Манипулирование разреженными матрицами в Matlab
Как я могу манипулировать i-ым и j-ым ненулевым элементом каждой другой разреженной матричной матрицы в середине n-2
блоков()?
приложена: Для того, чтобы уточнить, что я имею в виду г-го и j-го элемента любой другой разреженной матрицы, предположим, что у меня есть
Sparstica = [A_1; А_2; A_3; ...; A_n]
Это было создано от vertcat
. Теперь мне нужно взять i-й и j-й, скажем, 3-й и 5-й ненулевой элемент каждый другой разреженная матрица от A_2
до A_{N-1}
(Я знаю, что обозначение для этого на самом деле не разрешено, а только для демонстрационных цели). Я бы хотел сделать это без, используя, если возможно, петли.
Насколько велика 'n' в вашем дело? И вы проверили, что использование 'for'-loops определенно слишком медленное? –
http://www.mathworks.com/help/matlab/math/accessing-sparse-matrices.html#f6-9348 ctrl + f "усугубляет неэффективность". Для моих целей 'n' может достигать 2^15 или около того. Я забываю, что верхний предел в том, что Matlab может обрабатывать на моей машине. – AlanH