Wie führe ich die beiden GUIs in MatLab parallel?
Ich bin mit MatLab und ich habe zwei GUIs. Wenn ich auf eine Schaltfläche in einer GUI, die zweite GUI wird aufgerufen, und beide GUIs beide parallel arbeiten können. Wenn jeder Körper weiß die Antwort auf diese Frage geben Sie bitte Antwort an mich.
Ich habe zwei GUI-forms. In die erste bin ich drehen Sie eine Linie in einem Kreis (indem die polar-Funktion. Dies ist für mein radar-simulation Zweck). In dieser GUI habe ich einen button. Wenn ich drücken Sie es Zeile (mit der for-Schleife und pause-Funktion. Eigentlich ist es eine simulation, sieht irgendwie aus wie ein drehen im Kreis)
Kreis gedreht, bis ich eine weitere drücken der Drucktaste in der gleichen Benutzeroberfläche. Ich habe noch ein push-button. Wenn ich diese Taste drücken, aktiviert es ein anderes GUI zu tun die gleiche rotation, aber nicht die Kreis -, paar-Teil des Kreis (Sektor). Also hier muss ich in beiden Kreis und Sektor-rotation. Aber eigentlich, was passiert, wenn ich rufe den Sektor-GUI (2. GUI), die aus dem Kreis GUI ' s Drucktaste ist, dass die Linie dreht sich im Kreis, Stoppt und Kontrolle gibt, um Bereich nach Abschluss der Sektor-rotation. Kreis erscheint in Sektor GUI.
Wenn jemand weiß, wie man führen Sie diese zwei GUIs parallel, bitte Antworte mir. Wenn das noch zu vage ist, bitte sagen Sie mir, und ich werde erklären, einige mehr.
Mein code ist unten:
function twoguis
%Initializations:
hFigure2 = [];
hAxes2 = [];
%Make figure 1:
hFigure1 = figure('Position',[50 200 300 300]);
hAxes1 = axes('Parent',hFigure1,'Position',[0.1 0.2 0.8 0.7]);
hButton = uicontrol('Style','pushbutton',...
'Position',[10 10 100 20],...
'String','New Window',...
'Callback',@button);
% Start a loop that continuously changes the color of
% the axes at 1 second intervals:
while true, % You will have to press Ctrl-c to stop!
newColor = rand(1,3);
set(hAxes1,'Color',newColor);
if ishandle(hAxes2),
set(hAxes2,'Color',newColor);
end
drawnow;
pause(1);
end
function button(source,event)
% Check if Figure 2 has already been made:
if ishandle(hFigure2),
return;
end
% If it isn't made, make Figure 2:
hFigure2 = figure('Position',[350 200 300 300]);
hAxes2 = axes('Parent',hFigure2,'Position',[0.1 0.2 0.8 0.7]);
for xc=0:.05:6.28;
polar([0,xc],[0,10]);
pause(.1);
end
end
end
Kann mir jemand empfehlen, wie man die Farbe ändern kontinuierlich und drehen Sie die line-in polar-Funktion kontinuierlich in zwei zahlen?
Es ist immer noch unklar, was Sie Fragen. Vielleicht können Sie Bearbeiten Ihre Frage und fügen Sie den code, den Sie haben, so weit, so dass wir genau sehen können, was Sie tun. Meine beste Vermutung ist, dass Sie zwei GUIs mit Runden Zifferblätter, die Sie aktualisieren möchten gleichzeitig... ist das richtig?
ja exacltly, was u sagte, wenn u tun können , geben Sie bitte die Antwort
InformationsquelleAutor | 2009-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Machte ich ein video, das beschreibt, wie zwei oder mehr GUIs zu entwickelt, die Daten gemeinsam nutzen und zusammenarbeiten. Die kurze Antwort ist, verwenden Sie SETAPPDATA und GETAPPDATA zum Austausch von Daten zwischen GUI. Die lange Antwort ist hier:
http://blogs.mathworks.com/videos/2005/10/03/guide-video-part-two/
Meine Sammlung von GUI-videos können hier gefunden werden:
http://blogs.mathworks.com/videos/category/gui-or-guide/
-Doug
Lieber doug, mein problem ist nicht im Zusammenhang mit parallel computing tool box bin ich wieder erklären, das problem etwas deutlicher, ich habe 1 gui, wo ich aufgetragen die polar, polar Zentrum zum Rand ziehen, aline, Linie drehen sich im Kreis
wenn ich Anrufe, zweite gui dieses gui durch push putton anderen gui laufen parallel mit ersten Sekunde an auch gleich functioality beide arbeiten parallel, wenn Sie wissen, bitte helfen Sie mir
Tatiparthi, ich habe nie erwähnt das parallel-computing-toolbox. -Doug
InformationsquelleAutor MatlabDoug
EDIT: ich weiß, du wolltest Antworten, wie Sie dazu im HANDBUCH, aber vielleicht finden Sie diese nicht-ANLEITUNG, verschachtelte Funktion hilfreiche Antwort...
Der folgende code erstellt eine radar-GUI-Fenster mit einem polar plot und 2 Tasten. Die Schaltfläche "Start" beginnen, drehen Sie die Linie gegen den Uhrzeigersinn, und die Schaltfläche wird dann zu einer "Stop" - Taste (die Drehung der Linie, wenn Sie erneut gedrückt werden). Die zweite Schaltfläche startet einen Sektor GUI. Diese Figur hat ein Polardiagramm, dessen Linie wird durch drehen eines Abschnitts des polar-plot, in einem Bereich von 45 Grad auf beiden Seiten der aktuellen position des radar-GUI-line. Es ist ein weiterer "Start"/"Stop" - Taste in der Branche GUI zur Steuerung der animation. Während der Sektor-GUI geöffnet wird, den radar-GUI nicht animieren. Sobald der Sektor-GUI geschlossen wird, das radar-GUI kann erneut drehen. Sie können nur 1 Sektor GUI zu einer Zeit.
Wenn Sie möchten, um die Geschwindigkeit der Drehung einzustellen oder den mittelpunktswinkel des Sektors GUI, können Sie die Werte für die "radarStep" und "sectorWidth" - Variablen am Anfang der Funktion. Hoffe, das hilft!
wenn ich Anrufe, zweite gui dieses gui durch push putton anderen gui laufen parallel mit ersten Sekunde an auch gleich functioality beide arbeiten parallel, wenn Sie wissen, bitte helfen Sie mir
Liebe gnovice fast das problem ist dasselbe, wie Sie erklärt ,können Sie den gleichen code mit dem guide,ich denke, es ist durch ein Programm,geben Sie den code in thorug Anleitung, weil es conguses mir aber die Ausgabe des obigen code ausgeführt wird, aber ich brauche diese durch guide-gui-danke, Herr.gnovice
Leider habe ich nie verwenden GUIDE. Wenn Sie Hilfe benötigen, Dinge zu tun in der ANLEITUNG, ich würde vorschlagen, Doug ' s videos. Auch bin ich mir nicht sicher, wie Sie möchten, dass Ihre GUIs zu aktualisieren... wollen Sie Sie aktualisieren kontinuierlich, wenn das erste Bild öffnet, oder möchten Sie es zu starten, wenn die zweite geöffnet wird?
thanq,fügen Sie den code nur u gegeben, mich nach hAxes2 = axes('Parent',hFigure2,'Position',[0.1 0.2 0.8 0.7]); Schaltfläche Funktion mit code für x=0:.05:6.28; polar([0,x],[0,10]); pause (.1); Ende wenn Sie dies tun ,werden Sie leicht verstehen, mein problem, was ich wollen in diesem ist ich wnat ist Farben in der ersten gui
InformationsquelleAutor gnovice
Das problem ist, dass die MATLAB M-code-interpreter ist im Grunde die single-threaded. Also, wenn die Funktion "Taste" aufgerufen wird, es übernimmt die Kontrolle des interpreters und nicht geben es zurück, bis es beendet ist, einen sweep. Ich schlage vor, auf der Suche in die Verwendung der MATLAB timer-Klasse. Das gibt ein bisschen mehr von einem Multithread - "fühlen", obwohl technisch, wenn der timer-callback aufgerufen wird, wird es auch Blöcke, die anderen M-code ausgeführt. Hier ist eine modifizierte form des ursprünglichen code, der zeigt, wovon ich spreche:
sir,wenn Sie eine Idee haben, über guide bitte geben Sie den code durch Anleitung oder anderen Weise fünf den code gegeben, indem Sie in den oben ,geben, dass der code durch guide
InformationsquelleAutor SCFrench