Можно ли отобразить все подматрицы, каждая из которых представлена переменной в matlab?
Есть ли встроенная функция для отображения всех подматриц из матрицы в Matlab? Для отображения одной подматрицы у нас есть функция x(:,m:n). Например: рассмотрим матрицу 4 x 4
A = 14 11 16 16
15 2 16 8
3 5 3 13
15 9 16 3
Если размер всех подматриц равен 1 x 2, как отобразить все подматрицы, присутствующие в A? Также, как представить каждую подматрицу переменной (например, a1,a2..etc)
a{1}=[14 11]
a{2}=[16 16]
.
.
a{8}=[16 3]
Как отобразить все подматрицы в виде массива ячеек? пожалуйста помоги. заранее спасибо
2 ответа
- Преобразуйте матрицу в линейный массив
Измените линейный массив в любой формат, который вы хотите, который в этом случае 2
x
матрица, так что каждая строка представляет собой одну подматрицу.reshape(reshape(A', numel(A), 1), 2, numel(A)/2)'
Если вы хотите преобразовать результаты в ячейки, вы можете использовать команду mat2cell()
,
Вы можете использовать команду mat2cell, чтобы разделить исходную матрицу по желанию, а затем cell2mat, чтобы снова получить результат в виде (под) матрицы. В вашем конкретном примере, используя тот же matix A, что и выше, вы можете использовать его следующим образом:
B = mat2cell(A,[1 1 1 1],[2 2])
cell2mat(B(1,1))
ans =
14 11
cell2mat(B(1,2))
ans =
16 16
cell2mat(B(4,2))
ans =
16 3