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

mehrere Werte in Listbox schreiben

 

dutss
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 24.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2010, 20:18     Titel: mehrere Werte in Listbox schreiben
  Antworten mit Zitat      
Hallo,
habe auf der Mathworks Homepage ein Beispiel gefunden, mit dem ein Eintrag der Listbox per Knopfdruck hinzugefügt wird (s. unten).
Code:
% --- Executes on button press in add.
function add_Callback(hObject, eventdata, handles)

% read the Listbox
entries = get(handles.listbox_d,'String');
value   = get(handles.listbox_d,'Value');

newEntryName = { get(handles.editfeld,'String') };
entries = [entries; newEntryName];
% Update listbox
set(handles.listbox_driver,'Value',value,'String',entries)

Das funktioniert soweit.
Nun versuche ich mehr als einen Wert durch die Variable "newEntryName" in die neue Listboxzelle zu schreiben. Dazu habe ich versucht, den Wert von newEntryName einem Array "newEntryName2" zu übergeben in dem dann die Einträge für die Zelle stehen.

Code:

% bis hierhin ist alles mit dem Code oben identisch

newEntryName = { get(handles.editfeld,'String') };
newEntryName2=[newEntryName, 't=', handles.duration]; % hier die neue Variable
entries = [entries; newEntryName2];
% Update listbox
set(handles.listbox_driver,'Value',value,'String',entries)


Leider erhalte ich hierbei den Fehler
"Error using ==> vertcat
CAT arguments dimensions are not consistent."
Wie kann ich erreichen in die neue Listboxzelle doch mehrere Einträge zu schreiben?

Vielen Dank für eure Hilfe
dutss
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: 14.10.2010, 20:56     Titel: Re: mehrere Werte in Listbox schreiben
  Antworten mit Zitat      
Hallo dutss,

Zitat:
Code:

newEntryName = { get(handles.editfeld,'String') };
newEntryName2=[newEntryName, 't=', handles.duration];
entries = [entries; newEntryName2];
 

newEntryName ist jetzt ein cell string.
't=' is aber ein String, und was "handles.duration" ist, weiss ich nicht.
Du kannst aber nur dann Array miteinander verbinden, wenn sie den gleichen Type haben. Dann müssen auch noch die Dimensionen zusammen passen.

Falls "handles.duration" auch ein Cell String ist, würde dies funktionieren:
Code:

newEntryName = cellstr(get(handles.editfeld, 'String'));
newEntryName2 = [newEntryName; {'t='}; handles.duration];
entries = [entries; newEntryName2];
 

Beachte die Semicolons statt der Kommata.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 24.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2010, 21:54     Titel:
  Antworten mit Zitat      
N'abend Jan,

"handles.duration" ist nur eine Variable die ein weiteres Editfeld einliest.
Code:

function duration_field_Callback(hObject, eventdata, handles)
handles.duration = get(hObject,'String');
guidata(hObject, handles);
...


newEntryName = cellstr(get(handles.editfeld, 'String'));
newEntryName2 = [newEntryName; {'t='}; cellstr(handles.duration)];
entries = [entries; newEntryName2];


Habe den Code so übernommen und noch ein cellstr() vor das handles.duration gesetzt.
Soweit läuft das ganze jetzt. Aber in der Listbox wird nun der alte Wert immer wieder in die Listboxzelle geschrieben und die beiden neuen Werte erhalten ebenfalls einen Umbruch.
Ich möchte aber quasi den Namen aus dem editfeld zusammen mit dem Wert aus der Variable in einer Zeile der Listbox stehen haben
Zur Verdeutlichung ist es vielleicht einfacher:

Name aus editfeld t= Zahl aus handles.duration Variable
und bei erneutem Druck auf den Knopf mit neuem Namen aus editfeld und Zahlenwert aus Variable:
Name2 aus editfeld t= Zahl2 aus handles.duration Variable

Danke für deine Hilfsbereitschafft!

Grüße
dutss
Private Nachricht senden Benutzer-Profile anzeigen
 
dutss
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 24.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2010, 06:57     Titel:
  Antworten mit Zitat      
irgendwie kann ich meinen Beitrag nicht editieren.
Wäre es möglich mit einer Hilfsvariablen (newEntryName2)eine Art String zu erzeugen, in den ich newEntryName und bspw. noch ein weiteres Edittext Feld schreibe?
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.