Вопрос

Допустим, у меня есть матрица 100x100, я хочу разделить ее на равные части 10x10.

Проблема в том, что входная матрица может быть любого размера (но всегда мод 10). Я посмотрел на функцию mat2cell , но она не работает для динамического числа частей. Или я что-то упустил?

Это было полезно?

Решение

Вам просто нужно указать mat2cell , как именно вы хотите разделить матрицу. Если вы уверены, что оно всегда будет кратным 10 в обоих направлениях, то это (довольно) просто. Предполагая, что X является матрицей, которую вы хотите разделить, и вы хотите, чтобы полученный массив ячеек был в Y :

Y = mat2cell (X, repmat (10, [1 size (X, 1) / 10]), repmat (10, [1 size (X, 2) / 10]));

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top