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> ohne Inhalt erkennen

 

Technofreak
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2009, 19:16     Titel: <struct> ohne Inhalt erkennen
  Antworten mit Zitat      
Hallo

habe zwar schon gesucht aber nichts brauchbares gefunden.

Ich erhalte zum Beispiel bei der Nutzung der Funktion houghlines ein <struct> ohne Inhalt wenn die Funktion keine Linien gefunden hat. Da die Daten der gefundenen Linien weiterverarbeitet werden sollen muss ich erkennen ob eine Linie gefunden wurde. Wie kann ich prüfen ob das <struct> leer ist?

Silvio
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 24.09.2009, 21:29     Titel:
  Antworten mit Zitat      
Hallo

wenn du kleines Beispiel, machst wie deine struct aussieht, könnte man dir vielleicht besser helfen.
Besonders was leer ist?

sonst habe ich folgenden Vorschlag

Code:

a.b=[];
a.c=[];
a.d=[1,2]
empty_fields = structfun(@isempty,a)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Technofreak
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.08.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.09.2009, 22:53     Titel:
  Antworten mit Zitat      
Hallo

um das besser nachvollziehen zu können hier mal der Ausschnitt aus meinem Programm:

Code:

Bereich=zeros(52,59);
Bereich(28,58)=255;
[Bild,t,r]=hough(Bereich);
haufen=houghpeaks(Bild, 15);
linien=houghlines(Bereich, t, r, haufen,'FillGap',5.9,'MinLength',17.7);
l=length(linien);


Die Variable Bereich wird im richtigen Programm natürlich vorher von dem Programm übergeben, das die Funktion aufruft in der der Code steht.

Wenn man die Maus über die Variable "linien" hält erscheint die Meldung:

linien: 1x1 struct =
1x1 struct array with no fileds.

Im Anschluss an den oben geschriebenen Code sollen die einzelnen Elemente der sturcture ausgelesen werden. Als Fehlermeldung kommt dann:

Reference to non-existent field 'Feldname'

Ich hoffe das es jetzt etwas verständlicher ist.

Silvio
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.09.2009, 00:20     Titel:
  Antworten mit Zitat      
okay, jetzt ist etwas klarer

isempty funktioniert hier nicht mehr,
darum kleiner Umweg über fieldnames.
da es eine Struktur ohne Felder ist, liefert fieldnames empty cell
Code:

a=struct();
if isempty(fieldnames(a))
 disp('keine Felder')
end
 
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.