2016-07-03 4 views
0

궤도 속도 Vs 깊이를 플로트하고 싶습니다. 이것은 다음 스크립트로 성공합니다 :MATLAB : 하나의 루프의 서브 플로

clear all; clc; close all; 

u = [ 
    0.1841 0.6168 0.6889 0.3531 -0.2019 -0.6549 -0.7366 -0.3882 0.1988; 
    0.1627 0.5404 0.6010 0.3045 -0.1819 -0.5763 -0.6439 -0.3353 0.1799; 
    0.1436 0.4732 0.5240 0.2623 -0.1639 -0.5071 -0.5628 -0.2895 0.1629; 
    0.1266 0.4141 0.4566 0.2258 -0.1475 -0.4463 -0.4919 -0.2498 0.1475; 
    0.1113 0.3622 0.3977 0.1941 -0.1328 -0.3927 -0.4299 -0.2154 0.1336; 
    0.0977 0.3165 0.3461 0.1666 -0.1196 -0.3455 -0.3756 -0.1855 0.1211]; 

w = [ 
    0.3543 0.0801 -0.2553 -0.4510 -0.3879 -0.1006 0.2431 0.4419 0.3824; 
    0.3055 0.0660 -0.2262 -0.3956 -0.3391 -0.0874 0.2129 0.3866 0.3351; 
    0.2630 0.0538 -0.2005 -0.3472 -0.2966 -0.0760 0.1866 0.3385 0.2939; 
    0.2262 0.0434 -0.1780 -0.3050 -0.2596 -0.0661 0.1635 0.2965 0.2579; 
    0.1942 0.0345 -0.1583 -0.2680 -0.2273 -0.0576 0.1434 0.2598 0.2264; 
    0.1666 0.0269 -0.1409 -0.2358 -0.1992 -0.0502 0.1258 0.2278 0.1990]; 


xx = 0; yy = 0; 
scale = 0; p = 1; 
dz = 2; 
figure(1) 
for d = 1:6; 
%d 
    dz = dz - 2; 
    for i =1:9; 
    quiver(xx, yy+dz, p*u(d,i),p*w(d,i),scale) 
    hold on 
    end 
end  
grid on  
axis equal;  
axis([-1 1 -10.5 0.5])  
%subplot(1,2,1)  
%axis([-1 1 -4.5 0.5])  
%subplot(1,2,2)  
%axis([-1 1 -10.5 -5.5]) 

내 질문 :이 플롯을 두 개의 서브 플로트로 나누는 방법?

subplot(1,2,1)  
axis([-1 1 -4.5 0.5])  
subplot(1,2,2)  
axis([-1 1 -10.5 -5.5]) 

답변

1

당신은 단순히 하나의 부가 적 줄거리와 다른 부가 적 줄거리의 값의 나머지 절반의 값의 절반을 플로팅하여이 작업을 수행 할 수 있습니다. 간격이 d=1:6이므로 if 조건을 사용하여 하나의 서브 그림에서 d=1:3의 값을 플롯하고 두 번째 서브 그림에서 d=4:6의 그림 값을 사용할 수 있습니다. 즉

if d<=3 subplot(1,2,1); axis([-1 1 -4.5 0.5]); grid on; end 
if d>3 subplot(1,2,2); axis([-1 1 -10.5 -5.5]); grid on; end 

그래서, 전체 코드는 다음과 같습니다

clear all; clc; close all; 

u = [ 
    0.1841 0.6168 0.6889 0.3531 -0.2019 -0.6549 -0.7366 -0.3882 0.1988; 
    0.1627 0.5404 0.6010 0.3045 -0.1819 -0.5763 -0.6439 -0.3353 0.1799; 
    0.1436 0.4732 0.5240 0.2623 -0.1639 -0.5071 -0.5628 -0.2895 0.1629; 
    0.1266 0.4141 0.4566 0.2258 -0.1475 -0.4463 -0.4919 -0.2498 0.1475; 
    0.1113 0.3622 0.3977 0.1941 -0.1328 -0.3927 -0.4299 -0.2154 0.1336; 
    0.0977 0.3165 0.3461 0.1666 -0.1196 -0.3455 -0.3756 -0.1855 0.1211]; 

w = [ 
    0.3543 0.0801 -0.2553 -0.4510 -0.3879 -0.1006 0.2431 0.4419 0.3824; 
    0.3055 0.0660 -0.2262 -0.3956 -0.3391 -0.0874 0.2129 0.3866 0.3351; 
    0.2630 0.0538 -0.2005 -0.3472 -0.2966 -0.0760 0.1866 0.3385 0.2939; 
    0.2262 0.0434 -0.1780 -0.3050 -0.2596 -0.0661 0.1635 0.2965 0.2579; 
    0.1942 0.0345 -0.1583 -0.2680 -0.2273 -0.0576 0.1434 0.2598 0.2264; 
    0.1666 0.0269 -0.1409 -0.2358 -0.1992 -0.0502 0.1258 0.2278 0.1990]; 


xx = 0; yy = 0; 
scale = 0; p = 1; 
dz = 2; 
figure(1) 

for d = 1:6; 
    dz = dz - 2; 
    for i =1:9; 
    if d<=3 subplot(1,2,1); axis([-1 1 -4.5 0.5]); grid on; end 
    if d>3 subplot(1,2,2); axis([-1 1 -10.5 -5.5]); grid on; end 
    quiver(xx, yy+dz, p*u(d,i),p*w(d,i),scale) 
    hold on; 
    end 
end  
+0

Sardar_Usama, 그것은 해결! 도와 주셔서 정말로 고맙습니다. 가장 좋은 점은 – User1961

+0

입니다. 그러나 d = 1:12 인 경우 서브 플로트를 어떻게 4 개의 서브 그림으로 분리 할 수 ​​있습니까? – User1961

+0

@ User1961 위의 코드는 하나의 서브 플로트에있는 값의 절반 ('d = 1 : 3 ')과 다른 서브 플로트에있는 값의 나머지 절반 ('d = 4 : 6'에 대해)을 표시합니다. 이제'd = 1 : 12 '의 경우'd = 1 : 6'과'd = 7 : 12' 간격으로 간단히 나눌 수 있습니다. –

관련 문제