2013-11-23 1 views
2

저는 Matlab에서 새로 왔으며 일부 누름 단추로 GUI를 만들었습니다.gui의 기본 작업 공간에서 matlab 파일을 실행하는 방법

이제 내 현재 폴더에 나는 4 개 파일이

다음 gui.fig에서

init.m 
example.mdl (simulink) 
gui.fig 
gui.m 

나는 두 개의 푸시 버튼이 있습니다

  1. Init 버튼
  2. start_simulink 버튼을

그리고이 버튼을 누를 때 나는 그것을 원한다. 그는 각 작업 :

  1. 시작 초기화
  2. 시작 시뮬

하지만 기본 작업 공간에서 수행하고 콜백 작업 영역에서뿐만 아니라되는 버튼 m 파일과 Simulink를 누른 후 그 싶습니다 .

어떻게하면됩니까?

+0

['evalin'] (http://mathworks.com/help/matlab/ref/evalin.html)을 사용하여 스크립트를 실행하십시오. – Hoki

답변

2

정확히 원하는 것은 아니지만 동일한 결과가 있습니다. 마지막으로 모든 변수가 기본 작업 공간에있게 될 것입니다. 내 경우에는 스크립트가 처음 호출 된 곳에서는 중요하지 않습니다. 난 당신이 콜백에 약간의 기능을 사용할 수 있도록 그냥 기본 작업 공간으로 매개 변수를로드하는 가정 초기화를 들어

:
function assign2workspace(scriptname) 
eval(scriptname); 
temp = who; 
for iv = 1:length(temp) 
    assignin('base',temp{iv},eval(temp{iv})); 
end 
end 

scriptname는 초기화 스크립트입니다

. Simulink를 들어


당신은 내 문제는 당신과 비슷한 생각

function startSimulink(modelname) 
sim(modelname); 

% do what has to be done 

temp = who; 
for iv = 1:length(temp) 
    assignin('base',temp{iv},eval(temp{iv})); 
end 
end 
+0

괜찮지 만 현재 폴더에 파일이 있고 콜백 WS가없는 기본 WS에서 실행되는 버튼을 누르기를 바란다. – user3024516

+2

나는 그것을 얻었지만 m- 파일이 어디서 불려 왔는지는 중요하다. 나중에 기본 작업 공간에 원하는 모든 변수가 있습니까? 그게 내 코드'assignin ('base', ...)가하고있는 것입니다. – thewaywewalk

1

그것을 (하지만 검증되지 않은) 아날로그을 할 수 있습니다. 여기 내 해결책이있다.

GUI에서 스크립트에 필요한 변수는 assignin('base','variablename')을 사용하여 기본 작업 영역에 지정해야합니다. 귀하의 버튼에 대한 콜백 함수에서 evalin('base','scriptname')