У меня есть матрица размером (A) = 20x301088 и еще один вектор linear_index, который равен 301088x1. Мне нужно преобразовать A в массив размером 97x97x32x20. Но он должен быть в определенном порядке, вектор linear_index содержит линейные индексы 97x97x32 в определенном порядке.Преобразование матрицы в массив
Например, элемент в точке A (20,4) следует поместить в linear_index (4) из B (:,:,:, 20). Надеюсь, это имеет смысл. Каждая строка A будет создавать собственную матрицу 97x97x32, а элементы будут помещаться в индексы, заданные значением в линейном_индексе.
Я сделал это один раз, но это требует shiftdim команды:
B (1: длина (лк), linear_index) = A (1: длина (Lx), :); B = shiftdim (A, 1);
Это работает, но команда shiftdim занимает немного времени, тем более, что размер моих матриц может достигать 97x97x32x194.
что это? Матлаб, Октав? Вы должны четко указать, что с соответствующим тегом – piokuc
Мои извинения, это мой первый раз, используя этот сайт. Спасибо. Это Matlab, но я уже понял решение. –