www.mikrocontroller.net

Forum: PC-Programmierung Variable in mat File suchen und Inhalt speichern - wo ist der Fehler?


Autor: Dennis07 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich möchte in einem mat file eine Variable suchen:

Code:
A = load(dataFile, '-regexp', 'gen')

Ich hatte mir das so gedacht dass er die Variable die 'gen' enthält, 
nämlich generator, sucht und deren Inhalt in A kopiert (nämlich 425.960 
Werte).
Stattdessen kopiert er mir in A aber nur den Namen der Variable die 
'gen' enthält und deren Größe. D.h. in A steht:

[i]generator: [425960x1 double] [/i]

Was mache ich falsch? Was muss man ändern?

Autor: Nicolas S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um genau zu sein erzeugt er ein structure A mit der Untervariable 
A.generator. Also generator = A.generator;

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wovon sprichst du eigentlich?
Immer drann denken:
Wir hier auf der anderen Seite des Bildschirms wissen nicht
* woran du arbeitest
* welche Hilfsmittel du benutzt
* welche Sprache du benutzt
* worum es überhaupt geht

Wenn du es nicht erzählst, kann dir kein Mensch helfen.
Denk dir einfach, du rufst bei der Seelsorge an. Denkst du, dass dort 
irgendwer mit deiner Anfrage irgendetwas anfangen könnte oder dich an 
einen Spezialisten für dein Problem vermitteln könnte?

Autor: Dennis07 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich war so vertieft dass ich das vergessen habe. Es geht um 
MATLAB!

Danke Nikolas! Gibt es eine Möglichkeit im Struct auf die Daten 
zuzugreifen, wenn ich den Namen der Variablenm nicht kenne? Also 
angenommen der Name, hier generator, könnte von Fall zu Fall 
unterschiedlich sein, ich möchte aber immer dieses Array einlesen.

Autor: Nicolas S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, also eigentlich steht es in der Hilfe. Stichwort: "dynamic field 
names".

Autor: Dennis07 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es jetzt erst mal so probiert, dass ich mir den Namem des 
Arrays mit fieldnames() hole
name = fieldnames(A)

Damit wäre das Problem erledigt, dass ich nicht weis wie das Array 
heißt. Jetzt möchte ich mir die Daten holen:
generator = getfield(A; {name})

Das funktioniert aber nicht ("Function subsindex is not defined for 
values of class 'cell'" , Error in getfield.)

Oder gibt es generell einen einfacheren Weg? Das eigentlich Ziel ist aus 
Messdaten die von .mdf Format in .mat Format konfertiert wurden einen 
Messkanal zu holen von dem ich nicht sicher weis wie er heißt, es kommt 
aber sicher generator drin vor, also lade ich:
A   = load(dataFile, '-regexp', 'generator');

Und jetzt will ich die Daten aus dem Struct A ziehen, bisher ohne 
Erfolg.

Autor: Nicolas S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
name1 = char(name);
generator = A.(name1)

tut es. (Dynamische Feldnamen sind keine Cell-Indizierung).

Autor: Dennis07 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert! Dank Dir Nicolas! Daran hab ich nicht gerdacht.

Autor: Nicolas S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ansonsten ist das goMatlab-Forum für Matlab-Fragen allerdings eher 
geeignet als Mikrocontroller.net.
Oder wenn man sich vor einem weltweiten Publikum blamieren will auch der
Central Newsreader.

Grüße
Nicolas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.