Matlab,插入保持宽高比的非方矩阵

时间:2013-05-09 13:55:22

标签: matlab matrix aspect-ratio interpolation

我有一个尺寸为27x4的矩阵,现在我想插入矩阵并用相同的宽高比绘制它。我一直在使用interp2,但因为它在每一步之后填充现有值之间的值,所以矩阵在2 * n-1维度上增长,这导致高度增长快于宽度。

有没有一种方法可以插入一个矩阵,只用内插值来填充新矩阵,而没有原始值,也就是说两个尺寸加倍的矩阵?是我能想到的唯一方法是插值interp2到更高的程度,然后选择值,但这将非常低效。

1 个答案:

答案 0 :(得分:0)

interp2应该可以正常工作,它必须是你如何定义最后2个参数。试试这个:

Z = rand(4,27);
x = 1:27;
y = 1:4;
[X, Y] = meshgrid(x, y)

xi = linspace(1, 27, 1000);
yi = linspace(1, 4, 1000 * (4/27)); % The 4/27 here is what ensures you keep the aspect ratio
[XI, YI] = meshgrid(xi, yi);

ZI = interp2(X,Y,Z,XI,YI);

检查宽高比

size(ZI,1) / size(ZI,2)

ans =

    0.1480

size(Z,1) / size(Z,2)

ans =

    0.1481

但基本上您需要确保的是,上面代码中xiyi的宽高比与您的原始版本相匹配。很容易概括。