我正在使用函数"resizem"
扩展矩阵的大小,而不删除数据。最近,在使用该函数后,它向我发送一个错误,该函数不能使用double类型的整数。我试图在我的矩阵上使用abs().^2
,但它没有用。
有没有其他功能可以做同样的事情?
注意:我需要数据不要改变,所以如果我有一个矩阵
A = [-1 0 2; 4 1 2]
我希望它成为像这样的5x5矩阵:
A = [-1 -0.5 0 1 2; 4 2.5 1 1.5 2]
另外,我已经尝试了函数' imresize',并给了我与resizem相同的问题。 (我拥有两个工具箱,我的矩阵是double型)
答案 0 :(得分:0)
如果A = [-1 0 2; 4 1 2]
您可以执行A = [A, [1, 2; 1.5 2]]
之类的操作来获取A = [-1 -0.5 0 1 2; 4 2.5 1 1.5 2]
。
答案 1 :(得分:0)
我会尝试去imresize
(这是Image Processing Toolbox
的一部分)。我从未使用过那些函数,但是看看你收到的错误,这与变量类型有关,新选项应该提供更多的灵活性。实际上,当resizem
返回双精度输出时,imresize
返回与输入相同类型的输出。
A = [-1 0 2; 4 1 2];
imresize(A,[2 5]);
该示例显示了如何使用它。我还测试了两种结果:
A = [-1 0 2; 4 1 2];
A_imr = imresize(A,[2 5]);
A_rem = resizem(A,[2 5]);
这是imresize
的结果:
A_imr:
-1,08000000000000 -0,720000000000000 -1,77635683940025e-15 1,29600000000000 2,16000000000000
4,24000000000000 2,82400000000000 1,00000000000000 1,48000000000000 2,08000000000000
这是resizem
的结果:
A_rem :
-1 -1 0 2 2
4 4 1 2 2
要进一步修改,请尝试使用scale
和method
参数。例如,在imresize
中,您需要指定适当的插值内核以实现平均。