2014-04-18 4 views
0

나는 그들이 원하는 변수뿐만 아니라 원하는 날짜 범위를 사용자에게 알려주는 MATLAB 스크립트를 자동화하는 데 어려움을 겪고 있습니다. 그런 다음 스크립트가 궁극적으로로드 할 파일의 명명 규칙 내에서 응답을 연결하기를 원합니다.자동화 문자열 및 번호 연결

variable = input ('입력 변수를 입력하십시오');

% 임시

시작 = 입력 ('폼 YYMMDD의 시작일 상태주세요');

퍼센트 130,418

ENDDATE = 입력 ('폼 YYMMDD의 종료일을 명시주세요');

% 140,418

파일의 sprintf = ('% s_dailydata_ % D_ % d.csv'변수, ENDDATE 시작);

퍼센트은 그래서 '파일'처럼 보일 것이라고 생각 : temp_dailydata_130418_140418.csv

VARDATA = 부하 (파일);

날짜를 나타내는 두 숫자는 문제를 일으키지 않지만 '변수'는 ​​문자열이라는 사실이 사실입니다. 앞뒤에 아포스트로피를 붙이면 약속이 끝난 후 '임시 직원'앞뒤에 아포스트로피를 넣으면 작동하지만 최종 사용자가이를 알지 못한다고 가정해야합니다. 나는 '변수를 입력하십시오.'라는 중괄호를 넣으려고했지만 그 역시 도움이되지 못했습니다. 분명히이 접근법은 요청 된 날짜가 파일 이름에 있다고 가정합니다. 누구든지 조언을 제공 할 수 있습니까? 아마도 sprintf 기능이 최선의 선택이 아닐까요?

답변

1

'end'를 변수 이름으로 사용하지 마십시오. 예약 된 이름이며이를 사용하면 정의중인 모든 함수 또는 논리 블록과 충돌을 일으킬 수 있습니다. 당신이 당신의 입력 문자열이 될 것입니다 알고 있다면

는 다음 documentation for input()

str = input(prompt,'s') 
Returns the entered text as a MATLAB string, without evaluating expressions. 

로에서 파일이 존재하는지 여부를 알고 위해, 그건 당신이 몇 가지 오류 로직을 통합해야 할 것 뭔가. try/catch 블록을 load() 호출로 사용하거나 uigetfile()을 사용하여 파일 이름을 가져올 수 있습니다.

+0

감사합니다. 완벽하게 작동했습니다. 파일이 존재하는지 여부에 대한 두 가지 제안을 살펴 보겠습니다. –