【发布时间】:2016-11-10 00:44:11
【问题描述】:
我试图通过复制另一个矩阵将矩阵上采样两个,但我对代码感到困惑,基本上我想要的是:
Y = [1,2]
那么上采样版本将如下所示:
Up = [1,1,2,2;1,1,2,2]
到目前为止我写的是:
[row,col] = size(y)
Up = zeros(row*2,col*2);
for i = 1:2:row*2
for j = 1:2:col*2
Up(i, j) = Y(i,j);
Up(i+1, j) = Y(i,j);
Up(i, j+1) = Y(i,j);
Up(i+1, j+1) = Y(i,j);
end
end
但它说索引超出了矩阵维度,我理解这是因为 +1,但我不知道该怎么做...
【问题讨论】:
-
这行得通吗?
repmat(sort(repmat([1,2], 1, 2)), 2, 1) -
您是在做这个编程练习,还是只需要调整矩阵的大小?因为您可以在一行中使用
kron或imresize... -
其实没关系,删除“排序”可以解决问题,谢谢!
-
@AprilCrumb 试试
kron(Y, ones(2))。这应该将每个元素水平和垂直复制两次。