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

'YTickLabel': Cell array of strings may only contain string

 

PrinzMegahertz
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2010, 13:26     Titel: 'YTickLabel': Cell array of strings may only contain string
  Antworten mit Zitat      
Hallo allerseits,

Matlab treibt mich gerade in den Wahnsinn.
Ich möchte eine Grafik mit den Befehlen

set(gca,'ytick',[1:size(MyOdors.Odors,2)],'yticklabel', MyOdors.Odors(1:end));

beschriften. Das hat in der Vergangenheit auch gut funktioniert, aber im Moment kommt ständig die Fehlermeldung aus der Überschrift.

Im konkreten Fall ist MyOdors.Odors ein Cell-Array mit den Dimensionen 1x16 und dem Inhalt

'Hexanal' 'Control oil' 'Spontanaktivität' 'Citral' '1-Hexanol' '2-Octanone' 'Clove Oil' 'Orange Oil' 'Isoamylacetat' 'Geranylic-Acid' '1-Octanol' 'Limonene' '1-Pentanol' 'Control oil' 'Spontanaktivität' '2-Heptanone'

Meiner Ansicht nach sind das alles Strings. Kann mir jemand erklären, an welcher Feinheit sich Matlab genau aufhängt? Bin gerade kurz vor dem in die Tastatur beißen Evil or Very Mad

Vielen Dank schonmal!
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.2010, 13:49     Titel:
  Antworten mit Zitat      
Hallo

Wie lautet denn die Fehlermeldung?
Private Nachricht senden Benutzer-Profile anzeigen
 
PrinzMegahertz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2010, 09:54     Titel:
  Antworten mit Zitat      
Hallo denny,


??? Error using ==> set
Cell array of strings may only contain string and numeric matrices


Das ist mMn der Fall - in dem Cell Array sind ausschlieslich Strings.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.11.2010, 15:28     Titel:
  Antworten mit Zitat      
Hallo,

Na ja in Prinzip, wenn du CELLSTR hast, dann sollte es bei dir funktionieren.
Bist du sicher, das ist wirklich so ist? Prüfe es doch mit Debugger. Oder mit dem Befehl ISCELLSTR.

Sonst kann ich den Fehler nicht reproduzieren,
also ich fürchte ohne lauffähigen Beispiel Code können wir dir nicht helfen.
Ja Matlab-Version wäre auch hilfreich.
Private Nachricht senden Benutzer-Profile anzeigen
 
PrinzMegahertz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2010, 14:49     Titel:
  Antworten mit Zitat      
Hallo Denni,

ich bekomme für jede einzelne Zelle des Cellarrays die Aussage, dass es sich um einen String handelt.

iscellstr(MyOdors.Odors{1}) gibt immer 1.
Die Fehlermeldung erscheint trotzdem Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.11.2010, 15:55     Titel:
  Antworten mit Zitat      
Hallo PrinzMegahertz,

Das scheint ja ziemlich merkwürdig zu sein.
Bist Du denn sicher, dass die Fehlermeldung aus dieser Zeile stammt???
Versuche dochmal den Debugger zum Erforschen der Fehlerquelle einzusetzen:
Code:

Dann das Programm laufen lassen bis es in der fehlerhaften Zeile stoppt. Nun kannst Du Dir die gesamte Zeile und den Inhalt aller Variablen anschauen. Und eine dieser Variablen wird die Fehlermeldung verursachen! Ganz bestimmt!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
PrinzMegahertz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2010, 12:09     Titel:
  Antworten mit Zitat      
Das Programm gibt mir beim Abbruch ja die Zeile des Fehlers an:

??? Error using ==> set
Cell array of strings may only contain string and numeric matrices

Error in ==> Main at 174
set(gca,'yticklabel', MyOdors.Odors);

Den Inhalt von MyOdors.Odors hab ich einfach mal rauskopiert.

'Spontanaktivität' 'Control oil' 'Control air' 'Citral' 'Geranylic-Acid' 'Isoamylacetat' 'Limonene' 'Clove Oil' 'Orange Oil' 'Hexanal' '1-Pentanol' '1-Octanol' '1-Hexanol' '2-Octanone' '2-Heptanone' 'Spontanaktivität' 'Citral' 'Citral' 'Citral' 'Citral' '2-Heptanone' '2-Heptanone' '2-Heptanone' '2-Heptanone'

Ich verstehe das Problem jetzt so, dass zwar jede einzelne Zelle ein String ist, ich aber den Cell-Array irgendwie konvertieren muss, damit Matlab mir das auch glaubt.

Für Ideen in dieser Richtung wäre ich sehr dankbar! Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 30.11.2010, 12:33     Titel:
  Antworten mit Zitat      
PrinzMegahertz hat Folgendes geschrieben:
Hallo Denni,

ich bekomme für jede einzelne Zelle des Cellarrays die Aussage, dass es sich um einen String handelt.

iscellstr(MyOdors.Odors{1}) gibt immer 1.
Die Fehlermeldung erscheint trotzdem Sad


Es scheint mir, dass wir einander vorbeireden. Hier muss man oft eine Detektivarbeit betreiben, bis man das Problem sieht.

Ich vermute MyOdors.Odors ist CELL of CELL und nicht CELLSTR,
das beweist oberer Betrag, und zwar wie du ISCELLSTR aufgerufen hast.
Du übergibst ersten Element von MyOdors.Odors und zwar in Geschweiften Klammern. Und ISCELLSTR sagt dass ein CELLSTR ist.


Daraus folgt, dass MyOdors.Odors so übergeben muss:
Code:

set(gca,'yticklabel', [MyOdors.Odors{:}])
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.11.2010, 23:19     Titel:
  Antworten mit Zitat      
Hallo denny,

Sehr gut! Wenn man so aus 2 Meter Entfernung auf den Bildschirm guckt, sieht eine geschweifte Klammer ziemlich nebensächlich aus. Aber Matlab ist da ziemlich kniepig... ;-)

Oder:
Code:
set(gca,'yticklabel', MyOdors.Odors{1})

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
PrinzMegahertz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.04.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.03.2011, 17:19     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
PrinzMegahertz hat Folgendes geschrieben:
Hallo Denni,

ich bekomme für jede einzelne Zelle des Cellarrays die Aussage, dass es sich um einen String handelt.

iscellstr(MyOdors.Odors{1}) gibt immer 1.
Die Fehlermeldung erscheint trotzdem Sad


Es scheint mir, dass wir einander vorbeireden. Hier muss man oft eine Detektivarbeit betreiben, bis man das Problem sieht.

Ich vermute MyOdors.Odors ist CELL of CELL und nicht CELLSTR,
das beweist oberer Betrag, und zwar wie du ISCELLSTR aufgerufen hast.
Du übergibst ersten Element von MyOdors.Odors und zwar in Geschweiften Klammern. Und ISCELLSTR sagt dass ein CELLSTR ist.


Daraus folgt, dass MyOdors.Odors so übergeben muss:
Code:

set(gca,'yticklabel', [MyOdors.Odors{:}])
 


Das ist zwar schon ein bisschen her, aber trotzdem vielen Dank für die Lösung!
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.