垫矩阵到一个特定的尺寸

26次浏览(最近30天)
Elysi科钦
Elysi科钦 2021年5月13日
回答: 图像分析 2021年5月13日
我有一个矩阵 的大小 x n
n 可能相等,也可能不相等 可以是矩形或方阵-在哪里 n 还不到 150
我想调整大小 150 x 150 用0填充边框,这样m x n就会出现在中心
M_resized = padarray(M,[x y],0,)“两个”);
如何计算x和y的值,以便我可以对任何矩阵使用同一行代码,
或者还有别的办法吗?

接受的答案

图像分析
图像分析 2021年5月13日
您可以使用'pre'和'post'选项来填充每边所需的零的数量。
或者使用这个“技巧”
G = ones(150, 150);%原始矩阵是150 x 150
[rows, columns] = size(g);
米= 153
n = 152;
rowsPre = floor((m - rows)/2)
collsPre = floor((n - columns)/2)
%用顶部和底部334行填充,
%和281列左右。
P = padarray(g, [rowsPre, colspre], 0, ' ');“两个”);
P%原来是152x152,四周填充了零。
不是我们想要的尺寸。我们希望153年x152
这里有一个“技巧”,用0展开右下角。
P(m, n) = 0;
P%现在是153 x 152

答案(1)

大卫•希尔
大卫•希尔 2021年5月13日
假设m和n都是偶数。
M_resized = padarray (M,[(150 -大小(M, 1)) / 2(150 -大小(M, 2)) / 2), 0,“两个”);
1评论
Elysi科钦
Elysi科钦 2021年5月13日
如果两个值都是奇数或者任意一个值都是奇数呢
比如71 x 100
或者97 x 97
或63 x 89

登录评论。

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!