2016-06-09 3 views
0

CSV 파일 및 플롯 그래프에서 데이터를로드하는 matlab gui 코드를 작성하려고합니다. 그리고 매번로드 데이터 버튼을 클릭하여 데이터를로드하고 플롯은 새 데이터를 새로 고쳐 플롯해야합니다. 데이터를로드하고 첫 번째 그래프를 그릴 수있었습니다. 그러나 두 번째로로드 데이터 버튼을 클릭하면 다른 CSV 파일에서 데이터가로드되지만 첫 번째 그래프의 맨 위에 표시됩니다. 그래프를 새로 고침 할 때마다 데이터를로드하고 새 GUI 파일에 저장하는 방법을 모르겠습니다. 도와주세요. Gui 인터페이스로 작업하는 것은 이번이 처음입니다. 내 Load 데이터 콜백 함수를 아래에 게시하고 있습니다. gui 인터페이스는 .jpg 첨부 파일입니다. 고맙습니다.Matlab Gui interface

function shiva_Callback(hObject, eventdata, handles) 
     hold off 
    % load data 
     %plot  
     yyaxis left 
     loglog(t,a,'b') 
     hold on 
     loglog(t,t,'r') 
     loglog(t,d,'c') 
     loglog(t,,'m') 
     ylabel('% Text') 
     xlabel('T') 
     yyaxis right 
     loglog(t,s,'y') 
     loglog(t,st,'g') 

     function ma_Callback(hObject, eventdata, handles) 
% i tried uisave but not possible to run computer without matlab cause mcr 
% does not run uisave 
% i tried copyopbj but since i did not put a name on my figure it did not 
% work 

답변

2

당신은 axes에 배치 모든 새로운 플롯을 교체하지 않고 기존의 플롯에을 추가 것을 의미 hold set to on 있습니다. 가장 쉬운 방법은 새 데이터를로드 한 후 플로팅을 시작하기 전에 (즉, 콜백 상단에서) hold off으로 전화하는 것입니다.

function shiva_Callback(hObject, eventdata, handles) 
    % Ensure that our new plots overwrite existing plots 
    yyaxis left 
    hold off 

    yyaxis right 
    hold off 

    handles.filename = uigetfile('*.xls'); 

    % Load data in 

    % Now plot the new plots 
    yyaxis left 
    loglog(p, r, 'b'); 

    % Enable adding plots again 
    hold on 

    loglog(p, t, 'r'); 

    % Plot the rest of your stuff 

    yyaxis right 
    loglog(p, a, 'y') 
    hold on 
    loglog(p, h, 'g') 
    ylabel('State and Status'); 
    grid on 
+0

나는 보류를 시도했지만 작동하지 않았습니다. –

+0

@ParthaDey 내가 게시 한 것을 시도 했습니까? 나는 당신이 가지고 있다고 가정하고 있습니다 – Suever

+0

@ParthaDey 틀리게 구현해야합니다. 내 예제를 다시 확인해야합니다. – Suever