Извлечение квадратных матриц из матрицы Nx2 - PullRequest
1 голос
/ 11 марта 2019

Я работаю над 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].'

Можете ли вы мне помочь?пожалуйста ?Спасибо

1 Ответ

4 голосов
/ 11 марта 2019

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

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

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

C = permute(reshape(A.',2,2,[]), [2,1,3]);
...