2016-06-20 2 views
0

변수가 생성 될 때까지 프로그램을 일시 중단해야합니다. 필자는 데이터 파일을 가리킨 다음 uiimport를 열어 데이터 범위를 지정합니다. 그리고이 순간에 변수가 생성 될 때까지 프로그램을 일시 중지해야합니다.변수가 존재하지 않을 때까지 대기 MATLAB

%find file 
[FileName,PathName] = uigetfile({'*.xls;*.xlsx', 'Excel files(*.xls, *.xlsx)'},'Укажите Excel-файл с данными'); 
%open import wizard 
uiimport(strcat(PathName, FileName)); 
% here i need to suspend the program until the variable is created 

답변

2

uiimport을 호출 할 때 출력 변수를 지정해야합니다. 이렇게하면 uiimport을 호출 한 후 아무 전화 번호도 uiimport이 완료 될 때까지 실행되지 않습니다 (사용자가 가져올 데이터를 선택했는지 여부). 어떤 이유로 이 변수가 존재 할 때까지 기다릴 필요 한 경우

data = uiimport(fullfile(PathName, FileName)); 

% Do stuff with data 
disp(data.value) 

, 당신은 exist와 결합 된 while 루프를 사용할 수 있지만 일반적으로이 빈약 한 프로그램 설계의 마커입니다.

while ~exist('variablename', 'var') 
    % Do something that may define the variable 
end 

업데이트

단순히 엑셀 파일을 읽고 있다면, 그렇게 할 xlsread을 사용할 가능성이 더 쉽다 :

data = xlsread(filename, -1); 
+0

을하지만 프로그램은 직후 계속 실행 uiimport에 전화하십시오. [link] (http://images.vfl.ru/ii/1466457679/b4bf3cc2/13094222.jpg ) –

+0

@MaximMefodovskiy 아 좋아요. 네, 위의 그림에서 보았 듯이'uiimport'에 출력을 지정해야합니다. – Suever

+0

제가 이것을하려고합니다. 하지만 다른 창문이있어. http://images.vfl.ru/ii/1466458008/56a547ae/13094251.jpg –

관련 문제