我需要在Matlab中将矩阵(无插值)的大小调整为不同的分辨率。下图将突出显示我想要的内容:
Matlab中是否有内置函数?如果没有,那么实现这一结果的好方法是什么?
如果我的问题不够明确,请告诉我。谢谢你的任何帮助=)
答案 0 :(得分:5)
A = [1 2; 3 4]; %// data
m = 3; %// row repetition factor
n = 3; %// column repetition factor
B = A(ceil(1/m:1/m:size(A,1)), ceil(1/n:1/n:size(A,1)))
答案 1 :(得分:5)
在函数kron()
>> kron( [1 2; 3 4], ones(1))
ans =
1 2
3 4
>> kron( [1 2; 3 4], ones(2))
ans =
1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4
>> kron( [1 2; 3 4], ones(3))
ans =
1 1 1 2 2 2
1 1 1 2 2 2
1 1 1 2 2 2
3 3 3 4 4 4
3 3 3 4 4 4
3 3 3 4 4 4
甚至可以拉伸/缩小尺寸
>> kron( [1 2; 3 4], ones(1,2))
ans =
1 1 2 2
3 3 4 4
答案 2 :(得分:3)
如果您有图像处理工具箱
可以使用imresize函数来执行此操作
Old=[1,2;3,4];
factor=2; % scale factor
New=imresize(Old,factor,'nearest')
New =
1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4