2013-05-09 2 views
1

치수가 27x4 인 행렬을 가지고 있습니다. 이제 행렬을 보간하고 같은 종횡비로 그려 봅니다. 나는 interp2를 사용했지만 각 단계 후에 기존의 값들 사이에 값이 채워지기 때문에 행렬이 차원 2 * n-1에서 모두 커지기 때문에 너비가 너비보다 빠르게 증가합니다.

원래 행렬이없는 보간 된 값으로 만 새 행렬을 채우는 행렬을 보간하는 방법이 있습니까?

내가 생각할 수있는 유일한 방법은 interp2로 더 높은 차수로 보간 한 다음 값을 선택하는 것입니다. 그러나 이것은 매우 비효율적입니다.Matlab, 가로 세로 비율을 유지하는 비 정방 행렬을 보간

답변

0

interp2이 정상적으로 작동해야하며, 마지막 두 매개 변수를 정의하는 방법이어야합니다. 이 시도 :

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의 가로 세로 비율은 위의 원본과 동일하게한다는 것입니다. 일반화하기도 꽤 쉽습니다.

+0

적어도 Matlab 버전에서는 X와 Y가 바뀌고 YI가 바뀌어야하지만, 그렇지 않으면 매력처럼 작동합니다. 고마워. – user2366412

+0

@ user2366412 물론 해결책의 왼쪽 상단에있는 눈금 표시를 클릭하여 해결 된 것으로 표시하십시오. – Dan

관련 문제