簡體   English   中英

Matlab,插值非平方矩陣,保持寬高比

[英]Matlab, interpolate non-square matrix keeping aspect-ratio

我有一個尺寸為27x4的矩陣,現在我想對矩陣進行插值並以相同的寬高比進行繪制。 我一直在使用interp2,但是因為它在每一步之后都在現有值之間填充值,所以矩陣的維數均為2 * n-1,這導致高度的增長快於寬度的增長。

是否有一種方法可以對矩陣進行插值,而僅用內插值填充新矩陣,而不用原始值進行插值,也就是說,將二維尺寸加倍?

我能想到的唯一方法是在較高的程度上對interp2進行插值,然后挑選出值,但這效率極低。

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的寬高比與您的原始寬高比匹配。 相當容易概括。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM