|
|
Paralleles Arbeiten zweier Funktionen |
|
VakiMoon |

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 13.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.03.2013, 17:08
Titel: Paralleles Arbeiten zweier Funktionen
|
 |
Hallo an Alle,
ich möchte, dass meine Matlab-funktion eine andere .m-Funktion aufruft, aber ohne, dass die erste Funktion aufhört weiter zu rechnen. Die zwiete Funktion soll dann die Ergebnisse zurückschreiben.
Wisst ihr, ob es eine Möglichkeit gitb, dass zwei Funktionen in Matlab parallel zu einander arbeiten, aber dennoch miteinander gekoppelt sind?
ich habe eine ähnliche Frage hier leider nciht gefunden.
|
|
|
|
|
VakiMoon |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 13.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.03.2013, 17:21
Titel:
|
 |
bzw. ich habe eine Socket-Verbindung mit Java erstellt. Matlab ist dabei mein Server. Nun möchte ich einen Thread in Matab aufrufen. Gibt es dafür in Matlab eine Möglichkeit?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 08.03.2013, 20:44
Titel:
|
 |
|
|
VakiMoon |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 13.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.03.2013, 09:58
Titel:
|
 |
geht das auch, ohne dass man PC toolbox haben muss?
es ist so: Java berechnet etwas und gibt die Werte an Matlab, Matlab nimmt die Werte an(durch socket-verbindung) und macht damit weitere Berechnungen.
Das Problem ist nur, dass die Werte von Java nicht alle gleichzeitig ankommen, sondern je nachdem, wann die zur Verfügung gestellt werden. Matlab soll nun zwei Funktionen beinhalten, die parallel laufen. Die erste Funtkion nimmt die Werte von Java an und speichert diese. Die zweite Funktion führt ihre Berechnungen nebenbei (unabhängig von allem anderen) durch.
Und genau da hackt es bei mir. Ich weiß nciht, wie ich in Matlab zwei Funktionen parallel zueinander laufen lasse......
|
|
|
MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 11.03.2013, 10:32
Titel:
|
 |
Hallo,
Java ist eine Programmiersprache. Eine Programmiersprache berechnet nichts. Du meinst die mit Java entwickelte Anwendung.
Harald hat bereits erwähnt, dass du die Parallel Computing Toolbox benötigst. Falls deine Installation diese nicht enthält, musst du wohl sequentiell arbeiten.
Grüße, Marc
|
|
|
VakiMoon |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 13.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.03.2013, 10:49
Titel:
|
 |
ahso, ja na gut, ich weiß nicht so recht was Java macht, ich weiß nur, dass die mir die Daten liefert =)
Es gibt ja bei Socket-Verbindung die Möglichkeit einen Thread aufzumachen, zumindest bei Java. kann man das auch bei Matlab anwenden?
Wenn nicht, dann muss ich das wohl wirklich nacheinander ablaufen lassen :/
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 11.03.2013, 11:28
Titel:
|
 |
Hallo,
meine Java-Kenntnisse halten sich in Grenzen und ich kann insbesondere mit Socket-Verbindungen nichts anfangen.
Vielleicht kannst du mal zeigen, wie genau der entsprechende Java-Code aussieht.
Müssen die beiden parallel laufenden Programme miteinander kommunizieren bzw. Daten austauschen? Dann dürfte es kompliziert werden.
Ansonsten könnte man vielleicht sogar zwei separate MATLABs aufmachen.
Grüße,
Harald
|
|
|
Martin1986 |

Forum-Century
|
 |
Beiträge: 121
|
 |
|
 |
Anmeldedatum: 20.06.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: Win 2016b Linux 2016b
|
 |
|
|
 |
|
Verfasst am: 11.03.2013, 15:33
Titel: generell wäre es mgl
|
 |
Mit java kannst x matlab instanzen aufzumachen (x sollte gleich bzw. -1) deiner CPU Anzahl sein. Wenn du keine Daten untereinander austauschen musst, sollte dies dein Problem lösen. Lohnt sich allerdings auch nur wenn die Funktionen wirklich länger laufen...
Sonst glaube frisst der Aufwand und der Overhead, die Vorteile wieder auf....
|
|
|
VakiMoon |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 13.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2013, 11:57
Titel:
|
 |
ich weiß nicht wie Java Code aussieht. ich weiß nur, dass ich von Java durch Socket-Verbindung einen String bekommen, der meinetwegen so aussieht "etwas = [1 2;3 4]". Das muss ich in Matlab einspeichern. und für meine Berechnungen in Matlab benutzen. Das ist alles kein Problem. es funktioniert. Ich woltle nur, dass die Funktion in Matlab, die die Daten von Java annimmt und die irgendwo abspeichert, parallel zu der Funktion(in Matlab) läuft, die diese Werte dann benutzt.
Aber ich muss doch wohl die beiden Funktionen nacheinander starten lassen, bzw mich um das Parallel Computing Toolbox kümmern =)
na gut, danke trotzdem für eure Hilfe =)
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.03.2013, 22:46
Titel:
|
 |
Hallo VakiMoon,
ich verstehe nicht, was der Vorteil davon sein soll, soetwas parallel machen zu wollen.
1. Wert von Socket lesen
2. Mit Wert Berechnung durchführen
Da Schritt 2 von Schritt 1 Informationen braucht, muß 2 sowieso auf 1 warten.
|
|
|
VakiMoon |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 13.02.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 10:37
Titel:
|
 |
Weil die "Berechnungsfunktion" die ganze Zeit rechnen soll und die Informationen, die sie von der anderen FUnktion benötigt, braucht die viel später.
Man könnte es natürlich so machen, dass die Berechnung durchgeführt wird, -> wenn die Werte braucht, dann holt sie sich aus dem Puffer und rechnet weiter. Geht natürlich.
Ich wollte nur, dass die Infos schon da sind, wenn sie gebraucht werden, ohne dass ich aus der Berechnung raus muss um diese abzuholen.
Es gibt ja bei java die Möglichkeit bei Socket-Verbindung(Vll auch nciht nur) einen Thread aufzumachen. Ich dachte, es könnte in Matlab auch funktionieren, da man ja viele Java-Funktionen in Matlab nutzen kann, aber eben ncith alle. Auf jeden Fall habe ich das nciht hinbekommen :/
aber juht, ohne PC toolbox gehts anscheindn ncith
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2013, 19:51
Titel:
|
 |
Wenn Java nicht sehr lange braucht um die Daten durch den Socket zu schicken tuts doch auch eine Funktion:
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|