我有一个包含分段区域索引的2维矩阵[n,m]
。我需要将matlab中的矩阵重新整形或调整为任意大小[n',m']
,而不会丢失原始值。换句话说,我需要扩展分段区域。我尝试使用reshpae,但它没有用,因为高度和宽度的比例必须相似。 imresize不起作用,因为它改变了原始值。
答案 0 :(得分:0)
我想出了一些快速的东西。连接矩阵是扩展矩阵大小而不会弄乱现有数据的一种方法:
s = zeros(3,3);
for x = 1:3 % just adds numbers so it can be studied
s(:,x) = x;
end
t = [s, zeros(3,3)]; % adds a 3 by 3 matrix to the right
u = [s; zeros(3,3)]; % adds a 3 by 3 matrix below
v = [t; zeros(3,6)]; % adds a 3 by 6 matrix below t matrix
如果需要其他解决方案,请告诉我。这很简单,但我不明白你想要什么。
答案 1 :(得分:0)
我尝试解决它而不使用循环,如下所示:
function m1=reshapez(m,sz)
sa = sz(1) / size(m,1); % height scale between original matrix and desired one
sb = sz(2) / size(m,2); % width scale between original matrix and desired one
a2 = ceil([1:sz(1)]./sa); % corresponding indices (x) of the desired matrix in the original one
b2 = ceil([1:sz(2)]./sb); % corresponding indices (y) of the desired matrix in the original one
m1 = m(a2,b2); % desired matrix