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

Erweiterung einer Structure

 

Norwa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 12:25     Titel: Erweiterung einer Structure
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem.
Ich habe bereits eine Structure erzeugt und abgespeichert. Nun möchte ich die Structure wieder laden und eine Variable hinzufügen. Ist das möglich, und wenn wie? :)
Gruß
die Norwa


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 19.11.2009, 12:47     Titel:
  Antworten mit Zitat      
Hallo,

ja, einfach hinzufügen:
Code:
X = struct('feld1', 42);
save datei X
clear X
load datei
X.feld2 = 23;
 


Oder habe ich die Frage falsch verstanden?

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Norwa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 13:07     Titel:
  Antworten mit Zitat      
Doch, hast Du richtig verstanden, aber genau das funktioniert bei mit nicht.
Ich habe die vorhandene strukture video geladen, aber, es erscheinen folgende Fehlermeldungen:

Code:

video.charge = 1
??? Incorrect number of right hand side elements in dot name assignment.  Missing [] around left hand side is a likely
cause.
>> video.charge ==1
??? Reference to non-existent field 'charge'.


Oder übersehe ich da was gravierendes?
 
Norwa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 13:09     Titel:
  Antworten mit Zitat      
Ah, ich hab es


Code:

video(1).charge=1


Man muss sich direkt auf die Größen beziehen, also z.B. mit einer for-Schleife auf allen den wert 1 zuweisen.

Vielen Dank:-))
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 19.11.2009, 13:11     Titel:
  Antworten mit Zitat      
Hallo,

ah, ich verstehe. Die Struktur ist ein Struktur-Array. Du kannst auch ohne Schleife allen den gleichen Wert zuweisen über
Code:
[video.charge] = deal(1);


Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Norwa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2009, 13:13     Titel:
  Antworten mit Zitat      
Ah, noch besser:-)
Danke!
 
Norwa

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2009, 14:04     Titel: AbfragenProblem miterweiterer Structure
  Antworten mit Zitat      
Bei der Abfrage ist leider ein neues Problem aufgetaucht:
Wenn ich nun die Structure video auf folgendes Abfrage:

Code:

sum(video.charge==1)
 


dann erhalte ich die Fehlermeldung
??? Error using ==> eq
Too many input arguments.

Die Abfrage
video.charge

ergibt die Antwort

ans =

1


ans =

2


ans =

2


ans =

2

Und damit nicht wie bei Abfrage, die bei mit sonst wie oben beschrieben funktioniert:

1
2
2
2

Aber wie bekomme ich die Charge-Nummern in eine Matrix...?
 
Germanus
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 15.12.09
Wohnort: ---
Version: 7.8.0 (R2009b), Linux
     Beitrag Verfasst am: 15.12.2009, 18:50     Titel:
  Antworten mit Zitat      
Hallo,

kann es sein, dass der Befehl
Code:
nur auf die erste Unterebne von einem 'struct' angewendet werden kann?

Denn schon das einfache Beispiel mit dem Überschreiben einer 'Untervariablen zweiter Ebene' einer Liste spuckt bei mir eine Fehlermeldung aus:

Code:

% Nachfolgender Code belegt die Unter-Unter-Variable der ersten ''''Instanz'''' eines ''''Objekts'''' mit dem Wert "eins" und die gleiche Unter-Unter-Variable der zweiten ''''Instanz'''' eines ''''Objekts'''' mit dem Wert "sieben":

Ob(1).UOb.UUOb=1; Ob(2).UOb.UUOb=7;

% Nachfolgender Code sollte alle jeweiligen Unter-Unter-Variablen mit dem selben Wert von "zehn" überschreiben
[Ob.UOb.UUOb]=deal(10)


Ich erhalte hierbei folgende Fehlermeldung:
Code:
??? A partial reference returned 2 results instead of exactly 1.


Abgesehen davon, dass es sich bei 'struct' und den Listen nicht um wirkliche 'Objekte' handelt, mache ich da gedanklich irgendetwas falsch und wenn ja, was?
Gibt es die Möglichkeit auch tiefere Untereben zu überschreiben?

Vielen Dank für eure Antworten,
MFG, Germanus
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.