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

char in uicontrol

 

Sen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.10.2013, 19:48     Titel: char in uicontrol
  Antworten mit Zitat      
Hallo,

mit folgendem code erzeuge ich eine Box und einen String, den ich darin ausgeben möchte:

Code:

MyBox = uicontrol('style','text');
    set(MyBox,'Units','normalized','Position',[pos3D(1,1),posRPM(1,2),0.335,0.341])
    set(MyBox,'horizontalalignment','left');
   
    s=sprintf(['\n Current file: ',Messwerte.info.name,...
               '\n Number of measurement points:', num2str(length(n.nSet_v2)),...
               '\n a',...
               '\n test']);
           
    set(MyBox,'string',s);
 


Das funktioniert erstmal alles auch wie geplant, bis auf das "Messwerte.info.name"
das ist ein char mit einem Dateipfad drinnen ("C:/Ordner/..../Datei.dat")

so wie der Code jetzt da steht gibt er mir in der Box nur "Current file: C:" aus und danach nix mehr. Meine Lösung wäre sowas wie char2str() gewesen, was es natürlich nicht gibt Razz

kennt jemand das Problem und hat eine Lösung dafür parat? Das wäre toll!

Vielen Dank!

Sen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.10.2013, 22:55     Titel:
  Antworten mit Zitat      
Hallo,

bist du sicher, dass die Daten in Messwerte.info.name korrekt abgelegt sind?
Für den Effekt habe ich nämlich keine Erklärung.

Folgendes funktioniert zumindest bei mir:
Code:
Messwerte.info.name = 'C:/Ordner/..../Datei.dat';
MyBox = uicontrol('style','text');
    set(MyBox,'Units','normalized','Position',[0 0,0.335,0.341])
    set(MyBox,'horizontalalignment','left');
   
    s=sprintf(['\n Current file: ',Messwerte.info.name,...
               '\n Number of measurement points: 10',...
               '\n a',...
               '\n test']);
           
    set(MyBox,'string',s);


In MATLAB gibt es keine Strings in dem Sinn, sondern nur Character Arrays.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Sen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2013, 11:18     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deine rasche Antwort!

wenn ich im Command Window "Messwerte.info.name" eingebe gibt er mir

ans =

C:\Users\...(den kompletten Pfad)\Datei.dat

aus.

ich benutze bei der erzeugung des gesamten neuen Fensters in dem sich meine Box befindet ebenso das label "Messwerte.info.name", um es in die Kopfzeile des Fensters zu schreiben. Das funktioniert und der Dateipfad steht im Kopf.

Ich dachte mir, dass es vielleicht was mit dem "\" im Dateinamen zu tun hat. Wirkt sich das u.U. irgendwie auf den String aus, den ich da zur Ausgabe in der Box erzeuge?

Sehr seltsam.

Randinfo: ich habe R2009a installiert

MfG,
Sen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2013, 11:25     Titel:
  Antworten mit Zitat      
Hallo,

ja, der \ macht Probleme. Leider hattest du in deinem ersten Beispiel / verwendet, so dass das Problem nicht ersichtlich war.

MATLAB bringt da ja im Command Window auch eine entsprechende Warnung.

Abhilfe:
Code:
Messwerte.info.name = 'C:\Ordner\....\Datei.dat';
MyBox = uicontrol('style','text');
    set(MyBox,'Units','normalized','Position',[0 0,0.335,0.341])
    set(MyBox,'horizontalalignment','left');
   
    s=[char(10), 'Current file: ',Messwerte.info.name,...
               char(10), 'Number of measurement points: 10',...
               char(10), 'a',...
               char(10), 'test'];
           
    set(MyBox,'string',s);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Sen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2013, 13:43     Titel:
  Antworten mit Zitat      
Mensch Harald,

eine Antwort kann natürlich immer nur so gut sein wie die Qualität der Frage Smile

Natürlich habe ich den \ Verdreht...

Mit deiner Lösung funktioniert es nun wunderbar! Danke dir Herzlich für den Wochenendlichen Feuerwehreinsatz!

Ich öffne ein Hefeweizen und trinke es auf dich.

MfG,
Sen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.10.2013, 14:16     Titel:
  Antworten mit Zitat      
Na, dann Prost :)
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.