matlab - 将矩阵划分为 10 个子矩阵

标签 matlab matrix

我有一个大小为 [86 86] 的矩阵 [x y]。我想把这个矩阵分成10个子矩阵。对于最后一个矩阵,坐标会不足,但可以用零填充。

[x y] = size(I)
nSub = 10;
B = mat2cell(I, 2*ones(size(I,1)/2,1), 2*ones(size(I,2)/2,1))

我尝试使用 mat2cell 函数,但输出效果不佳。 谁能告诉我哪里出了问题或者我可以更改此功能

最佳答案

这对你有用吗?

I = rand(86,86);
[x y] = size(I)
nSub = 10;

%// padding
xp = x + nSub - mod(x,nSub);
yp = y + nSub - mod(y,nSub);
I(xp,yp) = 0;

%// submatrices
B = mat2cell(I, nSub*ones(xp/nSub,1),nSub*ones(yp/nSub,1))

enter image description here

关于matlab - 将矩阵划分为 10 个子矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31001980/

相关文章:

matlab - 如何使用 MATLAB 矩阵中的值作为索引来确定新矩阵中数据的位置?

matlab - 如何在 Matlab 中使用谷歌翻译?

mysql - 数据库资源管理器未看到 MySQL J Connect "Unable to find JDBC driver file on MATLAB Java class path"

matlab - 如何在 MATLAB 中绘制带有标准偏差值的误差条形图?

Matlab:每行或列的第一个非零元素

Java 对角矩阵

R:外层、矩阵和矢量化

python - interp2(X, Y, Z, XI, YI) 从 Matlab 到 Python

R - 从 3 个原始向量创建矩阵

matlab - 从 3D 矩阵变量切片时将 2D 矩阵展平为 1D 的最佳方法