[英]Resizing a matrix into different resolution in Matlab
我需要在Matlab中将矩阵的大小(无插值)调整为不同的分辨率。 下图将突出显示我想要的内容:
Matlab中对此有任何内置功能吗? 如果没有,什么是实现此结果的好方法?
如果我的问题还不够清楚,请告诉我。 谢谢您的帮助=)
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)))
函数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
如果您有图像处理工具箱
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.