|
flop |
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.05.2008, 09:53
Titel: schleife-mat
|
|
Hallo
Hab eine mat-file taw.mat in dem einige struct stehen wie zB:
data11234
data11236
data23555
usw
und auch 2 struct die heißen:
infile
statn
Hat jemand eine Idee wie ich eine Schleife um die dataxxxxx machen kann?
Weil ich aus diesen dann Daten herauslese
flop
|
|
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 27.05.2008, 11:12
Titel:
|
|
mit der Funktion WHOS kannst Du abfragen welche Variablen sich im MAT-File befinden (noch bevor der MAT-File geladen wird). Wenn Du es hast selektiere daraus alle Namen die mit "data" anfangen und lasse diese über die Schleife bearbeiten:
MfG
|
|
|
flop |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.05.2008, 12:24
Titel:
|
|
leider bringt er mir eine Fehlermeldung bei der Zeile
Varnames = (vars(.........
und zwar :
too many input arguments
weißt vieleicht eine Lösung
mfg
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 27.05.2008, 19:21
Titel:
|
|
mein Code funzt einwandfrei!
Achte genau auf die Klammer - es gibt nicht nur Runde, sondern auch geschweifte...
MfG
|
|
|
flop |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2008, 09:51
Titel:
|
|
Danke jetzt erstellt er mir ein cell array
aber wenn ich jetzt eine Schleife machen will funktioniert es nicht
w= beliebige Zeit
for i = 1: length(varnames)
ind = find(varnames(i).sdate == w)
end
kommt immer die Fehlermeldung:
"Improper index matrix reference"
Eine Idee für eine Lösung?
mfg flop
|
|
|
freshp |
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: Schwabenländle ;)
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 28.05.2008, 10:03
Titel:
|
|
flop hat Folgendes geschrieben: |
Danke jetzt erstellt er mir ein cell array
aber wenn ich jetzt eine Schleife machen will funktioniert es nicht
w= beliebige Zeit
for i = 1: length(varnames)
ind = find(varnames(i).sdate == w)
end
kommt immer die Fehlermeldung:
"Improper index matrix reference"
Eine Idee für eine Lösung?
mfg flop |
Ich würde vorschlagen mir die Geschichte mit den Cellarrays und dem Zugriff auf die dort enthaltenen Elemente nochmal anzuschauen. Ich hab in deinem Code mal rot markiert, wo du runde Klammern benutzt hast. Vergleiche das mal mit Steve's Codebeispiel:
|
|
|
flop |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2008, 10:10
Titel:
|
|
Naja mit geschwungener Klammer kommt jetzt die fehlermeldung
"Attempt to reference field of non-structure array"
soll ich jetzt cell array umwandeln und wie?
mfg
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 28.05.2008, 10:22
Titel:
|
|
ich nehme an "sdate" ist ein Feld in dem Struct data***
Du kannst nicht darauf direkt zugreifen, weil "varnames{i}" nicht die Variable ist, sondern lediglich der Name dieser Variable als String.
d.h. Du musst zuerst die Daten aus dem File mit LOAD auslesen, oder Du machst das in der Schleife
MfG
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 28.05.2008, 10:23
Titel:
|
|
freshp hat Folgendes geschrieben: |
[...]
Vergleiche das mal mit Steve's Codebeispiel:
[...] |
Danke für die Ehre, aber es war outsider, der das Beispiel gepostet hat
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
flop |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2008, 11:00
Titel:
|
|
Kannst du mir das Programm ein wenig genauer erklären
muss ich varnames zuvor in einem mat file speichern oder muss ich einfach den mat file laden in dem die namen (also data11234,...) dann vorkommen.
und die Zeile mit getfield macht mir dann genau was? bzw welche Variable muss ich dann für meine weiteren Berechungen mit sdate verwenden?
|
|
|
freshp |
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: Schwabenländle ;)
|
|
|
|
Version: R2007b
|
|
|
|
|
|
Verfasst am: 28.05.2008, 11:20
Titel:
|
|
steve hat Folgendes geschrieben: |
freshp hat Folgendes geschrieben: |
[...]
Vergleiche das mal mit Steve's Codebeispiel:
[...] |
Danke für die Ehre, aber es war outsider, der das Beispiel gepostet hat
Gruß
Alex |
Verdammich noch eins.. Is ja noch früh am Tag..
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 28.05.2008, 11:48
Titel:
|
|
eigentlich muss Du mir erklären, was Du vor hast!
Also ich habe es so verstanden. Du hast einen MAT-File. In diesem MAT-File gibt es mehrere Variable. Von Interesse sind nur die, die mit "data" anfangen. Dabei handelt es sich um Strukts. Diese Variablen sollen nacheinander aus dem MAT-File ausgelesen werden und alle diese Strukt beinhalten den Feld mit dem Namen "sdate" mit dem Du etwas machen willst.
Wenn das so ist, dann sollte das funzen
MfG
|
|
|
flop |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 19.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2008, 12:35
Titel:
|
|
Du hast genau richtig verstanden was ich machen will
aber das mit getfield funktioniert nicht, vielleicht weil meine struct so aufgebaut ist:
***.mat:
data11234 -->data11234.sdate --> Werte
-->data11234.ff --> Werte
-->usw.
data11236 --> .........
kommen gleich mehrere Fehlermeldungen
was ist mit dem eval?
flop
|
|
|
outsider |
Forum-Meister
|
|
Beiträge: 806
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 28.05.2008, 12:56
Titel:
|
|
Hänge mal eine kleinen MAT-File an, damit ich was "handfestes" habe.
MfG
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|