WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

in txt mit dem abgelesenen Werte ohne Endung weiterarbeiten

 

tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 21:33     Titel: in txt mit dem abgelesenen Werte ohne Endung weiterarbeiten
  Antworten mit Zitat      
Hallo an Alle,

Ich schreibe erstes mal hier auf diesem Forum und hoffe,es ist die richtige Bereich.

ich bin Anfänger bei Matlab und habe jetzt bei meiner Bachelorarbeit folgendes Problem.

mit dem Start bei Matlab erstelle ich meine FSL Datei "funk.fsl" und mit dem Fsl wird das Program Femag hervorgerufen damit führe meine Berechnungen durch.
Mit dem Femag zu arbeiten müsste Femag immer von Fsl einlesen.

nebenbei wird die ganze Werten (die im Femag berechnet wird) in einem "Erste_Berechnungswerten.txt" Datei gespeichert.Der erste Schritt ist erfolgreich abgeschlossen.
Soweit habe ich es geschafft.

Das Problem ist jetzt;

um genauer Werte zu bekommen möchte ich mit dem in "Erste_Berechnungswerten.txt" geschriebenden Werten weiterarbeiten ohne Femagendung.
Nach dem ersten Schritt möchte ich den höchten Punkt von ganzen Werten in einem anderen txt Datei speichern dann matlab macht noch ein neue Fsl fertig
damit Femag von dem neuen Fsl seinen neuen werten abliest und weiterrechnet ohne Femagendung.

Aber da Femag nach der ersten Berechnung nicht ausgemacht werden muss(da noch ein neuer Schritt berechnet werden soll)
kann ich leider bei der zweiter Berechnung von meinem zweiten txt nicht was einlesen.Es wird erst nachdem ich den femag ausmache geschrieben.

Ich weiss es nicht wie kann ich von dem abgelesenen Werten ohne Femagendung weiterarbeite ,würde mich auf eine Lösung sehr freuen!
Danke schon mal im Voraus

Grüße
tatanka

Matlab BEFEHLE;

Code:
erste_FSL.fsl ;

 [x,y]=textread('Erste_Berechnungswerten.txt','%f %f'); % Erste Berechnungen geschrieben und von matlab hervorgerufen.

 close all
 
  [m,i]=max(y)
  t=x(i-1)
  k=x(i+1)
  w=k-t

aktueller_pfad = pwd;
cd([aktueller_pfad,'\FEMAG'])

Hochstepunkt.fsl ;                      %% neue Fsl geschrieben mit dem neuen werten "w und k"


FSL BEFEHL:

local file = io.open("Erste_Berechnungswerten.txt.txt", "w")  
    a=0
   for i=1,36 do

I1=current*(math.cos(a))

a=a+(pi/18 )
end                                          
file:close()

dofile('Hochstepunkt.fsl')
local file = io.open("zweiter_Schritt.txt", "w")  

a=(t/180)*pi  

for i=1,10 do

I1=current*(math.cos(a))  

file:write( string.format("%f\t %f\n", (a/pi)*180, b) )      

a=a+(pi/(360))
end


[EDITED, Jan, Bitte Code-Umgebung benutzen - Danke!]


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.08.2013, 00:11     Titel: Re: in txt mit dem abgelesenen Werte ohne Endung weiterarbei
  Antworten mit Zitat      
HAllo tatanka,

Herzlich willkommen im Forum!

Zitat:
mit dem Start bei Matlab erstelle ich meine FSL Datei "funk.fsl" und mit dem Fsl wird das Program Femag hervorgerufen damit führe meine Berechnungen durch.

Wenn es wichtig für die Frage ist zu wissen, was eine FSL-Datei und Femag ist, erkläre dies bitte. Ich glaube nicht, dass dies allgemein bekannt ist. Wenn es nicht wichtig ist, lasse solche Details besser weg.


Zitat:
um genauer Werte zu bekommen möchte ich mit dem in "Erste_Berechnungswerten.txt" geschriebenden Werten weiterarbeiten ohne Femagendung.

Das verstehe ich nicht.

Wie kann man das Femag "ausmachen"?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2013, 10:06     Titel:
  Antworten mit Zitat      
Hallo Jan,

mit dem FSl Text meinte Ich lua Text und Femag ist auch ein Programm mit dem man numerische Berechnungen durchführen kann, ich koppele femag und matlab damit ich alle berechnungen in einem zug durchführen kann

ich meinte schliessen mit dem "Ausmachen".

Das Problem ist, dass ich die errechneten Werte bei Femag übernehmen möchte, ohne es schliessen zu müssen.
Er soll etwas berechnen und als fsl speichern, jedoch direkt mit dem gespeicherten Wert weiterrechnen, aber am Ende der ersten Berechnung erstellt er die txt nicht und kann somit auch nicht mit dem Wert weiter arbeiten, erst nach dem ich Femag geschlossen und bei Matlab den Abbruch bestätigt habe, wird die fsl datei erstellt von Matlab, so kann ich zwar beim nächsten mal starten, weiterrechnen, jedoch soll Femag das alles in einer Ausführung errechnen und nicht erst nach schliessen.

meine Frage ist nun, ob ich bei Matlab einen Befehl eingeben muss, damit er die fsl datei schreibt ohne dabei Femag schliessen zu müssen.
Sprich es soll nach beendigung der Rechnungen von Femag, direkt die fsl datei schreiben und femag damit weiterrechnen kann

grüße
tatanka
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.08.2013, 11:18     Titel:
  Antworten mit Zitat      
Hallo tatanka,

Die Frage ist sehr speziell. Ich kenne Femag nicht. Aber es scheint so, als habe die Frage damit zu tun, ob Femag von aussen "ferngesteuert" werden kann. Das wäre dann eine Frage für das Femag-Forum (falls es eines gibt) oder gleich für die Autoren.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2013, 11:55     Titel:
  Antworten mit Zitat      
Hallo nochein mal Jan,

Vielen Dank erstmal für deine Antwort.

Ich habe eigentlich viel über Femag erzählt obwohl es nicht direkt damit zu tun hat.Es war erst mein Fehler

ich formuliere meine Frage nocheinmal vielleicht so wird besser.

Ich bekomme immer die Werte von einem laufenden Programm (Femag) in txt Format. Ich sage zu Matlab, ruf die Werten her (ich habe es geschafft) und führt paar Berechnungen damit (ich habe es auch geschafft).Dann sage ich zu Matlab,erstellt mir eine txt mit dem Berechneten Werten.Jetzt kommt das Problem.ich kann meine txt nicht einlesen lassen von Femag.da ist es irgendwie erst zu sehen wenn ich femag schliesse.

freue mich wenn du dir mal noch angucken kannst Jan.

Danke nochmal

ps:tut mir leid,meine deutsch Kenntnisse ist nicht perfekt,ich hoffe du verstehst mich von der Sprache her
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.08.2013, 17:31     Titel:
  Antworten mit Zitat      
Hallo tatanka,

Dein Deutsch ist gut verständlich.

Matlab schreibt also ein TXT-File und in Femag wird es erst angezeigt, wenn es neu gestartet wird - richtig? Dann wäre die ein Femag-Problem. Vielleicht reicht es, dort in einen neuen Ordner zu wechseln und wieder zurück. Ich kenne Femag aber nicht. Aber dessen Autoren sollten eine Antwort kennen, oder?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2013, 19:43     Titel:
  Antworten mit Zitat      
Hallo nochmal Jan,

neue Txt wird erst gezeigt wenn ich Femag schliesse und es ist mir jetzt aufgefallen wenn ich Femag schliesse,komme ich auf dem normalen Matlab Fenster.

Es wäre eine Lösung,wenn ich auf dem normalden Matlab Fenster kommen würde nachdem ""Hochstepunkt.fsl ;""

jetzt würde man mich fragen "was ist überhaupt unnormaler Fenster"
ich habe es auch hochgeladen.Wenn ich irgendwas schreibe,macht das Matlab gar nicht.wenn ich irgendwie auf den normalden kommen würde,würde es passen,denke ich mal Smile

Grüße
tatanka

Unbenannt.jpg
 Beschreibung:

Download
 Dateiname:  Unbenannt.jpg
 Dateigröße:  115.17 KB
 Heruntergeladen:  837 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.08.2013, 22:04     Titel:
  Antworten mit Zitat      
Hallo tatanka,

Ich beginne zu ahnen, worum es geht. Wie hast Du die externe Software "Femag" denn gestartet? Offenbar blockiert sie Matlab so lange, bit sie wieder geschlossen wird. Wie man das Programm so startet, dass es nicht blockiert, sollte in der Dokumentation von Femag stehen. Ich meine deshalb immer noch, dass dies kein Frage bzgl. Matlab ist.

Gruß, Jan

PS. eine Trial-Version die noch 153 Tage läuft ist mir bisher noch nicht untergekommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2013, 22:42     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke nochmal für dein Geduld Smile Ich habe das Femag und Matlab gekoppelt.Ich starte Femag über Matlab damit in Femag berechnete Werte in Matlab auswerten zu können.

danke für die Antwort.Ich gucke mir nochmal dann Lua-Text Forum.

hast du vielleicht eine andere Empfehlung damit es ohne Probleme gehen könnte?

Grüße,
tatanka
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 09.08.2013, 11:26     Titel:
  Antworten mit Zitat      
Hallo tatanka,

Zitat:
Ich habe das Femag und Matlab gekoppelt.Ich starte Femag über Matlab damit in Femag berechnete Werte in Matlab auswerten zu können.

Bitte poste den Code, mit dem Du Femag aufrufst. "Gekoppelt" könnte alles mögliche heißen, aber genau auf dieses Detail kommt es an.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2013, 15:42     Titel:
  Antworten mit Zitat      
Hallo Jan,

ich habe untern geschrieben wie es aussieht.Ich habe das Problem dass ich den " hoechster_punkt.fsl " einlesen
Danke!

Code:
aktueller_pfad = pwd;
cd([aktueller_pfad,'\FEMAG'])

FSL_schreiben ; %schreibt die FSL Datei für FEMAG
 
  fid_FEMAG_Start = fopen('StartFSL_FEMAG.bat','w');
 
  fprintf(fid_FEMAG_Start,['wfemag funktionen.fsl','\r\n']);
 
  fclose(fid_FEMAG_Start);
 
  [s, w] = dos('StartFSL_FEMAG.bat', '-echo');
  cd(aktueller_pfad)
 

 [x,y]=textread('erste.txt','%f %f');
 close all
 
  [m,i]=max(y)
  t=x(i-1)
  k=x(i+1)
  w=k-t

aktueller_pfad = pwd;
cd([aktueller_pfad,'\FEMAG'])

fid_fsl = fopen('hoechster_punkt.fsl','w');
fprintf(fid_fsl,['w          =', num2str(w),'','\r\n']);
fprintf(fid_fsl,['t               =', num2str(t),'','\r\n']);

 cloese all
 exit


[EDITED, Jan, Bitte Code-Umgebung benutzen - Danke!]
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.08.2013, 01:47     Titel:
  Antworten mit Zitat      
Hallo tatanka,

Code:
[s, w] = dos('StartFSL_FEMAG.bat', '-echo');

Ja, das ist genau das benötigte Detail. Versuche mal:
Code:
dos('StartFSL_FEMAG.bat &', '-echo');

Der Unterschied ist, dass mit & nicht auf das externe Programm gewartet wird. Dann kann man aber natürlich auch keine Rückgabe-Paramter [s,w] erhalten.
Hilft Dir das weiter?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
tatanka

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.08.2013, 03:24     Titel:
  Antworten mit Zitat      
Hallo Jan,

das hat nicht funktiniert da das Matlab schon komplett durchführt, obwohl die erste txt noch nicht fertig ist(oder besser gesagt während txt leer ist). Weil bei dem weitern Text ist ja die Variablen von dem ersten txt abhänging.

oder implementiere ich es falsch?

Grüße,
tatanka
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.08.2013, 00:31     Titel:
  Antworten mit Zitat      
Hallo tatanka,

Es gibt zwei Möglichkeiten ein esternes Programm auf zu rufen:
1. Man wartet, bis es fertig ist und bekommt dann eventuelle Output-Werte.
2. Man startet das Programm in einem neuen Thread, so dass Matlab parallel weiter läuft.

Beides hat Vor- und Nachteile. Während beim ersten Matlab blockiert ist und warten muss, biss sich das externe Programm terminiert, kann man beim zweiten nicht auf die Ergebnisse warten.

Für die Kontrolle von zwei parallel laufenden Prozessen muss man eine "Inter-Prozess-Kommunikation" benutzen, und das ist im Allgemeinen kompliziert. Du bräuchtest also eine Methode um von Matlab aus festzustellen, ob die externe Software das Ergebnis-File schon geschrieben hat. Dies ist wieder eine Frage, die der Support von Femag klären sollte.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.