Python-Äquivalent zu num2str von Matlab gesucht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
rt
User
Beiträge: 2
Registriert: Donnerstag 10. Juli 2008, 08:32
Wohnort: Aachen

Python-Äquivalent zu num2str von Matlab gesucht

Beitragvon rt » Donnerstag 10. Juli 2008, 09:20

Hallo zusammen,

ich habe die Ehre, einen Python-Skript zur automatischen Speicherung von einer Versuchsreihe zu erstellen. Jeder Dateiname soll hierbei durch eine Laufnummer des Versuchs (z.B. i) gekennzeichnet werden. Der Speicheroperand lautet SaveRefCapture(a), wobei a ein string mit Dateinamenpfad ist.

Zum Einfügen der Versuchslaufnummer i in den Dateinamen a muss ich diese Nummer zum String konvertieren, damit ich einzelne Buchstaben des Dateinamens besetzten kann.

Unter Matlab würde das z.B. so aussehen:
suffix='.mat';
a='D:\\Ordner\Messung';
b=length(a)+1;
c=b+length(num2str(i))-1;
a (b:c)=num2str(i);
d=c+1;
e=d+length(suffix)-1;
a (d:e)=suffix;
save (a);

Also, suche ich nach einem Python-Pendant für num2str von Matlab.
Für Hinweise wäre ich sehr dankbar.

Mit freundlichem Gruß
Maxim
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Beitragvon Darii » Donnerstag 10. Juli 2008, 09:27

Code: Alles auswählen

num1 = int("2") # ganze Zahl
num2 = float("4.2e-23") # rationale Zahl
print num1 * num2
#umgekehrt geht das jeweils mit str
BlackJack

Beitragvon BlackJack » Donnerstag 10. Juli 2008, 09:47

Zeichenkettenformatierung dürfte die naheliegendste Lösung sein.

Wobei man die formatierte Zahl rechts durch Nullen auffüllen sollte, dann werden die Dateien beim alphabetischen sortieren in der richtigen Reihenfolge aufgeführt:

Code: Alles auswählen

In [111]: r'D:\\Ordner\Messung%d.mat' % 42
Out[111]: 'D:\\\\Ordner\\Messung42.mat'

In [112]: r'D:\\Ordner\Messung%04d.mat' % 42
Out[112]: 'D:\\\\Ordner\\Messung0042.mat'


Der Matlab-Quelltext dafür sieht aber mehr als umständlich aus!

Ansonsten sollte man als Anfänger das Tutorial aus der Dokumentation durcharbeiten und PEP8, den Style Guide, lesen. `SaveRefCapture` würde in Python nämlich üblicherweise `save_ref_capture` heissen.
rt
User
Beiträge: 2
Registriert: Donnerstag 10. Juli 2008, 08:32
Wohnort: Aachen

Beitragvon rt » Donnerstag 10. Juli 2008, 17:58

Hat mir weitergeholfen. Besten Dank!
Viele Grüße
Maxim

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Holger Chapman