2012-01-19 4 views
1

GUI로 데이터를 가져 와서 handles에 저장하려고합니다. .mat 파일에는 모든 데이터가 포함 된 log이라는 단일 구조체가 들어 있습니다. 내가 가이드를 사용하여 버튼을 만들고 다음 코드를 추가했습니다 :Matlab GUI의 uigetfile

function loadMatFileButton_Callback(hObject, eventdata, handles) 
[FileName,PathName] = uigetfile('*.mat'); 
loadDataName = fullfile(PathName,FileName); 
load(loadDataName); % gives log struct 

handles.log = log; 

을하지만 실행할 때이 오류가 얻을 :

??? Error using ==> log 
Not enough input arguments. 

Error in ==> VisualizeData>loadMatFileButton_Callback at 160 
handles.log = log; 

정말 이상해을. load 명령 다음에 중단 점을 넣어 디버깅을 시도했습니다. 그런 다음 콘솔에 수동으로 handles.log = log을 입력하면 제대로 작동하지 않습니다 ... 무슨 일이 벌어지는 지 이해할 수 없지만 정말 사소 할 것입니다.

답변

0

짧은 :Not enough input arguments은 수수께끼에 대한 단서입니다. 변수가 아니라 함수를 사용하고 있음을 의미합니다.


우선 log! 그것은 내장 된 함수 - 자연 로그입니다. 물론, 당신은 그것을 오버라이드 할 수 있지만, 그것은 나쁜 스타일입니다.

분명히 코드에 log이라는 변수가 있고 그 변수가 없다고 기대할 수 있습니다. 그 이유를 알아 내기 위해 독자에게 운동으로 남겨 둘 것입니다. 힌트 :로드중인 .mat 파일을 확인하십시오.

+0

네, 그게 그 원인이었습니다. 나는 알아야했는데 ... 고마워! – Bart