튜토리얼 this을의 당신의 라디오 버튼의 핸들이 rb1
및 rb2
을하고 그들이 handles
구조에 저장되어 있다고 가정 해 봅시다. 그런 다음 'Value'
속성을 사용하여 선택했는지 확인할 수 있습니다.
function apollo(hObj, eventdata, handles)
if get(handles.hrb1, 'Value')
% do stuff
elseif get(handles.hrb2, 'Value')
% do other stuff
end
end
업데이트 : OP의 의견에 응답에 대한 SelectionChangeFcn
:
은 당신이의 Visible
속성을 변경 한 후 처음에 그들 모두를 그릴 수 많은 데이터가없는 경우 줄거리. 당신은 많은 데이터를이있는 경우
function cbSelectionChange(hObj, eventdata, handles)
rbTag = get(eventData.NewValue, 'Tag');
switch rbTag
case 'rb1'
set(handles.plotHandle1, 'Visible', 'On');
set(handles.plotHandle2, 'Visible', 'Off');
case 'rb2'
set(handles.plotHandle2, 'Visible', 'On');
set(handles.plotHandle1, 'Visible', 'Off');
end
end
당신은 SelectionChangeFcn
콜백에서 plot_data 함수를 호출 할 수 있습니다.
function cbSelectionChange(hObj, eventdata, handles)
rbTag = get(eventData.NewValue, 'Tag');
switch rbTag
case 'rb1'
plot_data(yourArguments1);
case 'rb2'
plot_data(yourArguments2);
end
end
코드를 수정하지 않으면 성능에 영향을 미치지 않습니다. 더그 선체 here 말한다 :
MATLAB 일반적으로 사용자가 입력 인수를 수정하지 않는 한 또는 때까지 함수 작업 공간 내부의 입력 인수의 복사를 방지하기 위해 "복사 (copy-on-write)"라는 시스템을 사용합니다. 입력 인수를 수정하지 않으면 MATLAB은 복사본을 만들지 않습니다.
감사합니다. HebeleHododo, 완벽하게 작동했습니다. 그러나 이제 프로그램을 실행하면서 제대로 설정하지 않았다는 것을 깨달았습니다. 지금해야 할 일은 코드를 변경하여 라디오 버튼을 클릭 할 때마다 계산 버튼을 항상 클릭하는 대신 적절한 플롯으로 변경합니다. 아마 radiobutton 그룹에 SelectionChangeFnc 콜백을 사용하는 것이 관련 될 것입니다. plot_data.m의 데이터 세트를 Apollo.m을 통해 기본 GUI에 전달하고 싶지는 않습니다. 모든 플롯을 플로팅 한 다음 메인 GUI에서 켜고 끌 수있는 방법이 있습니까? – roldy
@roldy 답변을 업데이트했습니다. 나는'Visible' 속성을 변경하는 것이 당신이 원하는 것이라고 생각합니다. – HebeleHododo