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

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 16.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.11.2010, 13:26
Titel: 'YTickLabel': Cell array of strings may only contain string
|
 |
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
Vielen Dank schonmal!
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 19.11.2010, 13:49
Titel:
|
 |
Hallo
Wie lautet denn die Fehlermeldung?
|
|
|
PrinzMegahertz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 16.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.11.2010, 09:54
Titel:
|
 |
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.
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.11.2010, 15:28
Titel:
|
 |
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.
|
|
|
PrinzMegahertz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 16.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.11.2010, 14:49
Titel:
|
 |
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
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.11.2010, 15:55
Titel:
|
 |
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:
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
|
|
|
PrinzMegahertz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 16.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2010, 12:09
Titel:
|
 |
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!
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 30.11.2010, 12:33
Titel:
|
 |
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  |
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:
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 30.11.2010, 23:19
Titel:
|
 |
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:
Gruß, Jan
|
|
|
PrinzMegahertz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 16.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.03.2011, 17:19
Titel:
|
 |
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  |
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:
|
Das ist zwar schon ein bisschen her, aber trotzdem vielen Dank für die Lösung!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|