#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]);