|
Linda |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.05.2017, 12:24
Titel: struct- fields kürzen
|
|
Hallo,
ich habe in einem struct Messwerte, die in einzelnen fields gespeichert sind, d.h. 100 fields mit jeweils 8000 Messwerten (also 8000 Zeilen und eine Spalte). Ich möchte jedoch die ersten 500 nicht verwenden, sondern nur die letzten 7500. Wie kann ich nun im gesamten den struct bearbeiten, ohne jedes Feld einzeln bearbeiten zu müssen.
Komme da nicht dahinter.
Danke!
Linda
|
|
|
|
|
General_Griboz |
Forum-Fortgeschrittener
|
|
Beiträge: 66
|
|
|
|
Anmeldedatum: 05.04.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 23.05.2017, 12:47
Titel:
|
|
Was meinst du mit nicht verwenden? Wenn du sie einfach löschen willst, dann funktioniert das:
Dann löscht er die ersten 500 und alle anderen Zeilen rutschen im Index jeweils nach oben.
|
|
|
Linda |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.05.2017, 12:52
Titel:
|
|
Danke für Deine Antwort.
Ja, löschen ist in Ordnung, aber so muss ich ja den fieldname immer neu eingeben. Ich möchte einfach alle fields im struct (mit dem Namen "Messwerte" z.Bsp.) genau gleich bearbeiten. Ist dies auch möglich? So müsste ich nicht alle Tabellen einzeln anklicken.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 23.05.2017, 13:36
Titel:
|
|
Hallo Linda,
Das nennt sich "dynamic fieldnames".
Gruß, Jan
|
|
|
Linda |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.05.2017, 15:16
Titel:
|
|
Okay, das habe ich nun so angewendet und kriege folgende Fehlermeldung: Matrix index is out of range for deletion.
Versucht das hiermit die fields selbst zu löschen?
Ich möchte wirklich nur die Zeilen der Inhalte der Fields löschen.
Echt komisch, dass es hiermit immer noch nicht will.
|
|
|
Linda |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.05.2017, 17:27
Titel:
|
|
Vielleicht erkläre ich mein Problem noch mal genauer:
Ich habe Vektoren, die jedoch als Fields in einem struct gespeichert sind. Die haben eine Länge, die ich kürzen will, weil die ersten 500 Messwerte eben unbrauchbar sind. Mit dem oberen Code funktioniert es leider nicht. Es ruft mir die Felder auf, aber verändert nicht deren Zeilenlänge.
Ich krieg das Problem trotz stundenlangem Durchlesen und Testen von Vorschlägen nicht gelöst.
|
|
|
General_Griboz |
Forum-Fortgeschrittener
|
|
Beiträge: 66
|
|
|
|
Anmeldedatum: 05.04.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 23.05.2017, 17:31
Titel:
|
|
Dein Problem liegt vllt darin, das es keine Zeilenvektoren sind, sondern Spaltenvektoren. Dein Vektor sieht wahrscheinlich so aus 1x8000 und nicht 8000x1. wenn dem so ist, dann versuch mal das:
|
|
|
Linda |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.05.2017, 17:42
Titel:
|
|
Leider nicht. Es ist ein 8000x1 Vektor.
|
|
|
General_Griboz |
Forum-Fortgeschrittener
|
|
Beiträge: 66
|
|
|
|
Anmeldedatum: 05.04.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2016b
|
|
|
|
|
|
Verfasst am: 23.05.2017, 17:52
Titel:
|
|
Dann poste doch mal bitte deinen Code, den du schon hast und sag in welcher Zeile der Fehler auftritt. Denn mit dem Beispiel funktioniert es.
Er löscht die ersten 50 Zeilen in field1 und field2.
|
|
|
Linda |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.05.2017, 12:09
Titel:
|
|
So hat es jetzt geklappt.
[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 24.05.2017, 14:14
Titel:
|
|
Hallo Linda,
Das ist seltsam, denn eigentlich ist das genau das, was mein Code auch tat.
Zitat: |
Matrix index is out of range for deletion. |
Das heißt, dass eines der Felder weniger als 500 Elemente enthält. Aber dann sollte dein Code auch nicht funktionieren.
Vielleicht hast Du meinen Code nicht exakt kopiert und mal "i" statt "iField" verwendet?
Aber egal, hauptsache es läuft jetzt.
Gruß, Jan
|
|
|
|
|
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.
|
|