Forum: Analoge Elektronik und Schaltungstechnik LTspice zu Matlab


von Emil K. (emil_k)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

Ich habe einige etwas ausführlichere Simulationen mit LTspice 
durchgeführt und versuche diese nun weiter zu bearbeiten mit Hilfe von 
Matlab. Gewöhnlich ist das kein Problem. Da kann Ich meine Tabelle mit

A= dlmread(Dateiname.txt); laden

und mit

x1=A(:,1);
x2=B(:,1);
y1=A(:,2);
y2=B(:,2);

meine Vektoren bestimmen und meine Messwerte weiter bearbeiten und 
plotten.

Allerdings haben Ich dieses mal mit einem Parameter sleep gearbeitet und 
meine .txt Datei fällt dementsprechend etwas k
omplizierter aus, so das meine vorherige Methode nicht funktioniert. Ich 
hab mal eine der Simulationen angehängt. Jeder der Simulation Runs wird 
dabei untereinander dargestellt. Somit habe Ich nicht eine reine Tabelle 
von der ich die Vektoren erzeugen kann.

1
2
...
100
Step Information: N=2  (Run: 2/10)
1
2
...

Mir ist schon in den Sinn gekommen die .txt Dateien händisch bzw. mit 
Excel vorzubereiten um sie dann in Matlab wie gewohnt weiter zubereiten, 
allerdings ist das jedes Mal sehr zeitaufwendig und Ich habe vor diese 
Simulation noch weitere Male zunutzen.

Daher meine Frage: Wie kann ich meine .txt Datei mit Hilfe von einem 
Matlab Script bearbeiten um sie anschließend wie gewohnt zu plotten.

Mit freundlichen Grüßen und vielen Dank im Voraus
Emil

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Du kannst unter Matlab die Datei mit fopen(), fgetl(), fscanf(), feof() 
genauso durchgehen, wie in jeder anderen Programmiersprache.

Wenn man das naiv macht (zeilenweise durchgehen und Vektoren füllen), 
ist das sehr langsam. Da ist dlmread() deutlich schneller. Der Trick 
besteht also darin, mit den file-Kommandos jeweils die Zeilen zu finden, 
an denen der Datensatz zuende ist, und dann die Bereiche zu kennen, die 
mit dlmread eingelesen werden.

von Emil K. (emil_k)


Lesenswert?

Walter T. schrieb:
> Du kannst unter Matlab die Datei mit fopen(), fgetl(), fscanf(), feof()
> genauso durchgehen, wie in jeder anderen Programmiersprache.
>
> Wenn man das naiv macht (zeilenweise durchgehen und Vektoren füllen),
> ist das sehr langsam. Da ist dlmread() deutlich schneller. Der Trick
> besteht also darin, mit den file-Kommandos jeweils die Zeilen zu finden,
> an denen der Datensatz zuende ist, und dann die Bereiche zu kennen, die
> mit dlmread eingelesen werden.

Programmieren gehört leider nicht zu meinen Stärken, hast du vielleicht 
schon mal ein ähnliches Script geschrieben an dem Ich mich orientieren 
kann ?
LG

von MrMatlab (Gast)


Lesenswert?


von Emil K. (emil_k)


Lesenswert?

MrMatlab schrieb:
> Habe ich was überlesen? Warum nicht einfach die LTspice-RAW-Daten
> importieren?
> 
https://de.mathworks.com/matlabcentral/fileexchange/23394-fast-import-of-compressed-binary-raw-files-created-with-ltspice-circuit-simulator

Das Script hatte ich mir auch schon angesehen, bin allerdings immer 
wieder an einer Fehlermeldung gescheitert. Hast du mit dem Script schon 
mal gearbeitet ?
LG

von Michel M. (elec-deniel)


Lesenswert?


: Bearbeitet durch User
von Emil K. (emil_k)


Lesenswert?

Michel M. schrieb:
> ?! ... zum testen, hat Helmut noch bearbeitet .. :-)
> https://groups.io/g/LTspice/topic/ltspice2matlab/50263980?p=
> https://github.com/PeterFeicht/ltspice2matlab

Ich weiß nicht inwiefern Ich das LTspice2Matlab Script falsch verwende, 
allerdings funktioniert es bei mir nicht

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.