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

#matlab #matrix #square

#matlab — математическая лаборатория #матрица #квадратный

Вопрос:

Я работаю над matlab 2014, у меня есть матрица 5124×2, и я хочу извлечь все 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:

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

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

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

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