Извлеките квадратные матрицы из матрицы Nx2

Я работаю на Matlab 2014, у меня есть матрица 5124x2, и я хочу извлечь все матрицы размером 2562 квадратных. Я обнаружил, что единственным решением является использование mat2Cell, но оно мне не подходит. Мне действительно не нужен массив ячеек в конце, я хочу просто все квадратные матрицы

%example of data
A = rand(5124,2);
C = mat2cell(A,2,2*ones(2562,1));

Я получаю следующую ошибку:

Error using mat2cell (line 106)
Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [5124     2].'

Не могли бы вы мне помочь ? Спасибо


person amine    schedule 11.03.2019    source источник


Ответы (1)


Чтобы исправить ваш код, он должен быть:

C = mat2cell(A,2*ones(2562,1));

И чтобы преобразовать A в трехмерную матрицу 2x2 срезов, вы можете использовать:

C = permute(reshape(A.',2,2,[]), [2,1,3]);
person Sardar Usama    schedule 11.03.2019