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

Nummer einer Datei zuordnen

 

Plotter
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 08:52     Titel: Nummer einer Datei zuordnen
  Antworten mit Zitat      
Hallo,
eine kleine Frage. Wie kann ich eine Nummer der Datei beim abspeichern zuordnen?

Code:

speichern = input('Möchten Sie die Ergebnisse speichern(j/n)?: ', 's');
if speichern == j
    dat_nummer = input('Bitte, geben Sie die Nummer, unter der die Datei abgespeichert weden soll: ');
    ['Erg_' num2str(dat_nummer)] =[....];

save ['Erg_' num2str(dat_nummer) '.asc'] -ascii
end
 
Private Nachricht senden Benutzer-Profile anzeigen


quant82
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 97
Anmeldedatum: 30.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 09:12     Titel:
  Antworten mit Zitat      
naja ich glaub du machst das schon ganz gut so... du erzeugst einen string in den du die nummer mit num2str die zahl einbaust

der code ist nur dummy code

Code:

zahl = input(zahl);
name = ['ersterteil',num2str(zahl),'zweiterteil.gif'];
save name variable

 
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 09:14     Titel:
  Antworten mit Zitat      
Das num2str kannst Du dir auch sparen, wenn Du für die Nummer direkt einen String eingeben lässt. Dann gehen auch hexadezimale oder binäre Nummern ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Plotter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 09:24     Titel:
  Antworten mit Zitat      
Bitte genauer erklären ))

bekomme im Editor Fehler "Invalid use of String" und "expression cannot be assigned to multiple values" .

die Datei soll dann auch unter dieser Nummer gespeichert werden
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 11:21     Titel:
  Antworten mit Zitat      
So:

Code:

    dat_nummer = input('Bitte, geben Sie die Nummer, unter der die Datei abgespeichert weden soll: ', 's');  % 's' eingefügt -> String einlesen
    ['Erg_', dat_nummer] =[....];
 


Es ist dann natürlich nicht mehr gegeben, dass die Nummer tatsächlich eine Nummer ist und nicht irgendein beliebiger String.
Private Nachricht senden Benutzer-Profile anzeigen
 
heph0013
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.03.08
Wohnort: ---
Version: 7.2.0.232 (R2006a)
     Beitrag Verfasst am: 08.06.2010, 11:30     Titel:
  Antworten mit Zitat      
Oder einfach so:

Code:

dat_nummer = input('Bitte, geben Sie die Nummer, unter der die Datei abgespeichert weden soll: ');
save (['Erg_' num2str(dat_nummer)  '.asc'],'Zuspeichernde_Variable','-ascii')
 


Gruß heph0013
Private Nachricht senden Benutzer-Profile anzeigen
 
Plotter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 13:47     Titel:
  Antworten mit Zitat      
der Fehler ist immer noch da, siehe Bild. 's' hab ich auch eingefügt

Fehler.JPG
 Beschreibung:

Download
 Dateiname:  Fehler.JPG
 Dateigröße:  33.87 KB
 Heruntergeladen:  365 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 14:06     Titel:
  Antworten mit Zitat      
Logisch geht das nicht. Du weißt einem Vektor mit zwei Elementen einen Vektor mit drei Elementen zu und einer deiner Vektoren links ist noch dazu eine Konstante. Wie soll matlab das denn verteilen?

['Erg', dat_nummer] ist ein Vektor aus zwei Elementen - beides Strings, einer Konstant, der andere variabel. Du kannst den Vektor in eine Variable schreiben, dann bekommst Du einen String raus.

Einem String kannst Du aber keinen Wert zuweisen, der String *ist* ein Wert. Wenn Deine Variable so heißen soll, wie es in dem String steht, kannst Du eval() benutzen. Fürs Speichern ist das aber nicht nötig, dort musst Du ja ohnehin einen String als Dateinamen übergeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Plotter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 26.05.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 14:37     Titel:
  Antworten mit Zitat      
Danke für die Erklärung. Ich glaub, ich hab mich nicht genug präzise ausgedrückt.

Ich möchte einen Vektor [x, y, z] mit einem Namen ind einer Nummer versehen.

z.B. dat_1 = [x, y, z] oder dat_2 = [x, y, z], die Nummer soll vom Benutzer gewählt werden und dann diesen Vektor (auch mit derselben Nummer) im Format .asc speichern.
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2010, 15:30     Titel:
  Antworten mit Zitat      
Also dynamische Variablennamen. Finde ich persönlich ausgesprochen hässlich. Unübersichtlich, kosten Performance und oben drein eigentlich fast immer unnötig.

Speicher die Werte doch ein einem Vektor, das macht auch die Weiterverarbeitung (z.B. in Schleifen) viel einfacher:

Code:

%tausende verschiedene Variablen, deren Namen zur Programmierzeit mehr oder weniger undurchsichtig sind
datensatz1 = [x1, y1, z1];
datensatz2 = [x2, y2, z2];
...
%bei einer verabeitung in einer schleife müssen wieder alle Namen dynamisch erzeugt werden. Die Anzahl der zuvor erzeugten Variablen ist unbekannt und muss ggf. gesondert mitgeführt werden.

%eine variable, klare
datensaetze(:, :, :, 1) = [x1, y1, z1];
datensaetze(:, :, :, 2) = [x2, y2, z2];
...
%bei einer verarbeitung in einer Schleife (die hier womöglich gar nicht mehr nötig ist) durchläuft man einfach die Matrix-Indizes an letzter Stelle. Anzahl der Variablen ist automatisch durch die Größe der Matrix bekannt.
 


Wenn Du das nicht so haben willst, guck Dir mal die Funktion eval() an. Damit kannst Du Befehle, die als String vorliegen als Matlab-Code interpretieren lassen.
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 - 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.