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

Struktur - Mehrere Elemente löschen

 

Martinuk
Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2012, 16:31     Titel: Struktur - Mehrere Elemente löschen
  Antworten mit Zitat      
Hallo,

ich möchte gerne aus einer Struktur mehre Elemente entfernen ohne ein for-Schleife nutzen zu müssen.
Die Struktur ist wie folgt aufgebaut,

Code:

s =

    DatenA: [1x4 struct]
    DatenB: [1x4 struct]

>> s.DatenA

ans =

1x4 struct array with fields:
    xWerte
    yWerte

>> s.DatenA(1).xWerte

ans =

     1
>> s.DatenA(2).xWerte

ans =

     2
>> s.DatenA(3).xWerte

ans =

     3
>> s.DatenA(4).xWerte

ans =

     4
 


Ich möchte nun gerne die xWerte 1 bis 4 löschen (löschen = [] setzen). Eine Möglichkeit wie
Code:

s.DatenA.xWerte = [] % funktioniert ja leider nicht
 

wäre wünschenswert. Momentan fällt mir nur eine Lösung mit einer for-Schleife ein.

Ich hoffe es ist verständlich was ich meine. Grundsätzlich möchte ich einfach mehrere Felder gleichzeitig "löschen/ändern". Hat jemand dazu eine Idee?
Private Nachricht senden Benutzer-Profile anzeigen


draussen
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 26.11.10
Wohnort: DE
Version: 2010b,2020a
     Beitrag Verfasst am: 15.08.2012, 16:51     Titel:
  Antworten mit Zitat      
Hallo,

auf die Schnelle fällt mir da der Befehl
Code:
ein.

Damit könnte man das Feld löschen und danach nach Bedarf neu definieren.


MfG

Georg
_________________

Der Einäugige ist unter den Blinden der König!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Martinuk
Themenstarter

Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2012, 16:58     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Antwort.

Der Befehl "rmfield" ist mir bekannt, aber er löscht mir eben das gesamte Feld. Ich möchte nicht das Feld löschen sondern nur alle Inhalte.

Dein Ansatz macht durchaus Sinn, das Feld zu löschen und im Anschluss wieder neu zu definieren, allerdings möchte ich dies auf meine Situation nicht anwenden.
Der Grund dafür ist, dass ich eigentlich nicht wirklich alle Inhalte löschen möchte, sondern 1er soll stets bestehen bleiben. Dieser ist wenn man so will nicht ohne Weiteres neu definierbar.

Verstehst du ungefähr was ich meine? Hast du noch eine andere Idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
draussen
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 26.11.10
Wohnort: DE
Version: 2010b,2020a
     Beitrag Verfasst am: 15.08.2012, 17:30     Titel:
  Antworten mit Zitat      
Hallo,

ich habe bis jetzt soweit ich das überblicken kann immer mit einer FOR-Schleife gearbeitet. Eine bessere Lösung fällt mir auf Anhieb nicht ein.

Tut mir leid.

MfG

Georg
_________________

Der Einäugige ist unter den Blinden der König!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
draussen
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 26.11.10
Wohnort: DE
Version: 2010b,2020a
     Beitrag Verfasst am: 15.08.2012, 17:54     Titel:
  Antworten mit Zitat      
Hallo ich nochmal,

schau mal hier:

http://www.gomatlab.de/werte-von-st.....ruct+felder+%E4ndern.html

Damit sollte es gehen:

Code:

 test1=repmat(struct('daten',[]),1,4)

test1 =

1x4 struct array with fields:
    daten

>> test1.daten

ans =

     []


ans =

     []


ans =

     []


ans =

     []
 



MfG

Georg
_________________

Der Einäugige ist unter den Blinden der König!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
draussen
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 90
Anmeldedatum: 26.11.10
Wohnort: DE
Version: 2010b,2020a
     Beitrag Verfasst am: 15.08.2012, 18:10     Titel:
  Antworten mit Zitat      
So und nochmal ich,

die letzte Antwort ist Quatsch, das klappt nur bei einem neuen Struct.
In dem anderen Thread ist der Befehl deal enthalten.
Der macht was Du brauchst.

Code:

[test1.daten]=deal([])

test1 =

1x4 struct array with fields:
    daten

>> test1.daten

ans =

     []


ans =

     []


ans =

     []


ans =

     []

 



MfG
_________________

Der Einäugige ist unter den Blinden der König!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Martinuk
Themenstarter

Forum-Century

Forum-Century


Beiträge: 208
Anmeldedatum: 18.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2012, 18:24     Titel:
  Antworten mit Zitat      
Hallo draussen,

wollte dir gerade auf deinen vorletzten Post antworten bis ich deinen aktuellen Eintrag gesehen habe.

Der letzte Eintrag ist genau was ich gesucht habe.

Danke für deinen unermüdlichen Einsatz Smile

Schöne Grüße
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.