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

GUI: uitable Daten setzen und extrahieren

 

ddtran
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 11.03.15
Wohnort: FFM
Version: R2014b
     Beitrag Verfasst am: 24.04.2015, 10:43     Titel: GUI: uitable Daten setzen und extrahieren
  Antworten mit Zitat      
Hallo allerseits,

mein Problem dreht sich um eine uitable innerhalb einer GUI.

-Wenn die Tabelle noch leer ist, und ich per Hand Daten eintrage und mit einem Callback die Daten extrahieren möchte, ist die class der uitable eine Zelle.
Für die weitere Prozessierung im callback wird aber vorausgestezt, dass es als double erkannt wird.

-wenn jedoch (über vorangehende Berechnungen und einem entsprechenden Callback) Daten in die Tabelle geschrieben werden, dann zeigt der vorher bschriebene Callback, dass die Daten innerhalb derTabelle auch als double erkannt wird.
Das ist auch noch der Fall, wenn ich per Hand Änderungen in der Tabelle vornehme und Zahlen verändere.

Wisst ihr, woran das liegen könnte?
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: 24.04.2015, 17:55     Titel: Re: GUI: uitable Daten setzen und extrahieren
  Antworten mit Zitat      
Hallo ddtran,

Zitat:
-Wenn die Tabelle noch leer ist, und ich per Hand Daten eintrage und mit einem Callback die Daten extrahieren möchte, ist die class der uitable eine Zelle.

Du meinst, dass die Class der Daten aus dem uitable-Objekt ein Cell ist, oder?

Zitat:
Für die weitere Prozessierung im callback wird aber vorausgestezt, dass es als double erkannt wird.

Ein Cell-Array kann nicht als Double erkannt werden, weil es kein Double ist. Aber mit CELL2MAT kann man die Inhalte in ein Double-Array konvertieren.

Zitat:
-wenn jedoch (über vorangehende Berechnungen und einem entsprechenden Callback) Daten in die Tabelle geschrieben werden, dann zeigt der vorher bschriebene Callback, dass die Daten innerhalb derTabelle auch als double erkannt wird.

Das wird daran liegen, dass der Callback eine Double-Matrix in die Daten schreibt.

Man kann leicht mit beiden Varianten umgehen, indem man per "if iscell" prüft, welche Art gerade vorliegt und bei Bedarf per "cell2mat" komvertiert - oder umgekehrt mit "mat2cell".

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 11.03.15
Wohnort: FFM
Version: R2014b
     Beitrag Verfasst am: 27.04.2015, 09:09     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Hinweise!
Es war noch ein weiteres Problem vorhanden. Die uitable, die eine cell ist, hat
leere Zellen, die nicht so ohne weiteres konvertiert werden können.
Fehlermeldung:

Dimensions of matrices being concatenated are not consistent.

Ich musste daher die leeren Zellen in 0 umwandeln.

Ich habe es daher mit folgenden Code-Fetzen gelöst:

Code:
table=get(handles.uitable3, 'data');

tf=isa(table, 'cell');
if tf==1  
    table(cellfun('isempty',table))={0};
    table=cell2mat(table);
end

A(:,1)=table(:,2);
A(:,2)=table(:,3);
   
toremove = all(A==0,2);
A(toremove, :) = [];
 


Vielen Dank für die entscheidenden Hinweise.
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 - 2024 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.