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

Struct mit cell vergleichen

 

Geranie
Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 27.05.13
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 19.11.2013, 17:46     Titel: Struct mit cell vergleichen
  Antworten mit Zitat      
Hallo zusammen,

ich hab ein struct und ein cell array, die ich vergleichen möchte. Um nicht mit zwei for-Schleifen zu verfahren, wollte ich hier kurz einmal nachfragen, ob es dafür eine einfache Funktion gibt?
strcmp und isequaln habe ich ausprobiert, bringen aber nicht das gewünschte Ergebnis.

Die Arrays enthalten beide Strings. Sobald diese Strings gleich sind, möchte ich mit den weiteren Daten aus den beiden Arrays weiterrechnen.

Ich vermute, dass das ganze schwierig ist, könnte am aufbau der Arrays liegen. So spreche ich mein cell so an: power.name{1,1} (enthält dann einen String) und mein struct so: struct{50}.name.

Gibt es da eine schnelle Vergleichsmöglichkeit ohne for-Schleifen?
Danke und lieben Gruß
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.11.2013, 17:54     Titel:
  Antworten mit Zitat      
Hallo

man kann nicht direkt Cell Strings mit Structs vergleichen, da muss man etwas Vorarbeit leisten damit man diese verglichen werden können
Cell of Structs zu machen ist nicht gerade gute Idee, dass erschwert das ganze noch zusätzlich. Besser wäre Array of Structs.

Deswegen bitte deine Struktur und deine Cell hier als MAT Datei anhängen. Eventuell gezippt

Also der Weg wäre folgender aus deiner Struct das Feld als Cell extrahieren,
dann beide Cells mit ISMEMBER vergleichen oder ISEQUAL
Private Nachricht senden Benutzer-Profile anzeigen
 
Geranie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 27.05.13
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 19.11.2013, 18:10     Titel:
  Antworten mit Zitat      
Hey Denny,

vielen Dank, dann werde ich es wohl doch mit for-schleifen lösen. In meinem Struct stehen außer dem "shortname" noch mehrere andere Daten, auf die ich zugreifen will, wenn dieser "shortname" eben dem "power.name" entspricht, daher würd ich sagen, macht ein extrahieren nicht so viel Sinn, oder?

Und was genau ist ein Cell of Structs?

Zur Info: ich habe beide Arrays nicht selbst erstellt, sondern quasi als "Rohdatensatz" bekommen und will die Daten nun verarbeiten.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.11.2013, 18:31     Titel:
  Antworten mit Zitat      
Zitat:
vielen Dank, dann werde ich es wohl doch mit for-schleifen lösen. In meinem Struct stehen außer dem "shortname" noch mehrere andere Daten, auf die ich zugreifen will, wenn dieser "shortname" eben dem "power.name" entspricht, daher würd ich sagen, macht ein extrahieren nicht so viel Sinn, oder?

Da kann ich keine Aussage treffen, weil ich noch nicht genau verstehe was du mit was vergleichst, was du den Vergleich rausfinden möchtest.
Oder was in deiner Cell drinnen ist, oder Struct.
Das muss bei dieser Lage selbst ausprobieren, was für dich effektiver und einfacher zu implementieren ist.



Zitat:

Und was genau ist ein Cell of Structs?


Das ist eine Cell die Structs beinhalten
z.B.
Code:

A{1}.shortname= 'MM'
A{1}.name= 'Max Mustermann'
A{2}.shortname= 'AM'
A{2}.name= 'Angela Merkel'
 


Zitat:

>> whos
Name Size Bytes Class Attributes

A 1x2 990 cell


Code:

A{1}.shortname= 'MM'
A{1}.name= 'Max Mustermann'
A{2}.shortname= 'AM'
A{2}.name= 'Angela Merkel'

% man kann leider in Cell Struct nur einzeln auf Elemente zugreifen
% sowas ist z.b nicht möglich A{:}.name

% Man kann aber Cell of Struct zu Array of Struct konvertieren,
% muss aber sichergestellt sein dass keine Felder fehlen.
A  = [A{:}]
% dann wäre so was möglich:
name ={A.name}
shortname = {A.shortname}

% oder struct2cell
struct2cell(A)


 
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.