2017-02-07 2 views
0

У меня есть матрица из 360 столбцов и 20 строк, я хочу иметь возможность разрезать эту матрицу на 18 правильных матриц < 20 * 20> т.е. 20 столбцов и 20 строк Я пытаюсь использовать mat2cell У меня есть сообщение об ошибке. у вас есть идеяВырезать матрицу через равные промежутки времени

+0

Будет сообщение об ошибке? – Priya

+0

@ Pri Ошибка в размерах синтаксиса – liomar

ответ

0

С mat2cell необходимо предоставить размеры каждого элемента поэтому нам нужно создать массив из 20-х, который имеет такое же количество записей, как количество столбцов, разделенных на 20, как третий вход.

mat2cell(data, 20, repmat(20, 1, size(data, 2)/20)) 

С другой стороны, вы могли бы сделать некоторые перепрофилирование с последующим вызовом num2cell на мой взгляд, гораздо проще работать с

squeeze(num2cell(permute(reshape(data, [], 20, 20), [2 3 1]),[1 2])) 
+0

У меня есть сообщение об ошибке, когда я использую mat2cell (matrice, repmat (20, 1, size (matrice, 1)/20), 20) также второй синтаксис – liomar

+0

для синтаксиса (1) Попытка выполните SCRIPT mat2cell как функцию: C: \ Users \ Tarhouni \ Documents \ MATLAB \ mat2cell.m ---------------> Ошибка в mast_wonted (строка 45) ---- -----------------------------> new_Matrices = mat2cell (Matrice, repmat (20, 1, размер (Matrice, 1)/20), 20); – liomar

+0

У вас есть файл с именем 'mat2cell' на вашем пути (C: \ Users \ Tarhouni \ Documents \ MATLAB \ mat2cell.m), который мешает функции * real *' mat2cell' – Suever

Смежные вопросы