1
이미지를 처리하고 보는 GUI 프로그램을 만들었습니다. 나는 좀더 간결하게 만들기 위해 GUI 함수 콜백 내에서 호출되는 헬퍼 함수에서 두 번 이상 사용되는 코드 중 일부를 작성했습니다.GUIDE로 만든 Matlab GUI의 도우미 함수에서 핸들에 데이터 저장/검색
그러나이 방법으로 프로그램을 작성하면 구조를 변경하기 위해 변경 사항을 저장하는 데 어려움이 있습니다. 도우미 함수의 계산은 디버깅 모드에서 검사했을 때 올바르게 수행되었습니다. 그러나 핸들 구조에 대한 변경 사항은 업데이트되지 않았습니다.
어떻게 해결할 수 있는지 궁금합니다.
코드 :
function ProcessData_Callback(hObject, eventdata, handles) % GUI callback
val = get(handles.menu, 'Value');
str = get(handles.menu, 'String');
switch str{val}
case 'Mode1'
FRETCalculator1(handles);
case 'Mode2'
FRETCalculator2(handles);
end
function FRETCalculator1(handles) % Helper function
for indT = 1:size(handles.Data,1)
for indZ = 1:size(handles.Data,3)
handles.Data{indT,3,indZ} = handles.Data{indT,1,indZ}./(handles.Data{indT,2,indZ}+1);
end
end
guidata(handles.mainGUI, handles);
예. 이것은 실제로 내 문제를 해결했습니다! 정말 고맙습니다! 당신은 제가 몇 가지 개념을 명확히하도록 도왔습니다. 핸들의 두 개의 다른 복사본이 있고 어떻게 든 충돌이 있기 때문에 함수 호출이 끝난 후 핸들에 변경된 내용이 영원히 없어 졌다고 계속 생각했습니다. 나는 약간 다른 해결책을 직접 습득했습니다. 헬퍼 함수를 출력으로 처리하도록 헬퍼 함수를 다시 작성합니다. 그런 다음 콜백에서 : handles = FRETCaltulator1 (handles); – user3667217