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

Problem mit Cell und Matrix Formatierung

 

manphiz
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2017, 08:52     Titel: Problem mit Cell und Matrix Formatierung
  Antworten mit Zitat      
Hallo Zusammen,

folgendes:
aus einer GUI Tabelle, möchte ich die Werte einlesen und in einer Variablen als Matrix speichern. In 9 von 10 Fällen klappt das auch wunderbar, aber in 1 von 10 speichert matlab mir die Tabelle als Cell.

Hier der Code:
Code:

Daten_1=get(handles.table_1,'data'); % Werte einlesen

Zeile_1=Daten_1(1, :); % Zeile 1 speichern
Zeile_2=Daten_1(2, :); % Zeile 2 speichern
Zeile_3=Daten_1(3, :);
Zeile_4=Daten_1(4, :);
 


Danke für eure Hilfe,
noch eine weitere Frage: Ist es möglich direkt aus der Tabelle bestimmte Zeilen in einer Variablen zu speichern oder geht das nur auf den obigen Weg?

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 09.05.2017, 13:43     Titel:
  Antworten mit Zitat      
Hallo,

Nun das hängt davon ab, was in data drin steht. Enthält dieses zB. einen String, kann Daten_1 keine numerische Matrix sein.

Zudem ist es nicht ratsam, Indizes in Variablennamen zu packen. Was spricht dagegen statt Zeile_x direkt Daten(x,:) zu verwenden?

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
manphiz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2017, 13:51     Titel:
  Antworten mit Zitat      
Danke für deine Antwort Seban,
in der Tabelle stehen nur Zahlen, bzw. leere Felder.

Ich habe die Daten so gespeichert weil diese im weiteren Programmverlauf noch mit Rechenoperationen versehen werden, und ich es so übersichtlicher finde.
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: 09.05.2017, 18:22     Titel:
  Antworten mit Zitat      
Hallo manphiz,

Zitat:
in der Tabelle stehen nur Zahlen, bzw. leere Felder.

Genau das ist die Ursache: Wenn eine Tabelle nur Zahlen enthält, kann man die Daten als Matrix exportieren. Sind aber auch leere Zellen vorhanden, geht das nur als Cell-Array, den numerische Arrays können ja keine leeren Felder enthalten.

Zitat:
Ich habe die Daten so gespeichert weil diese im weiteren Programmverlauf noch mit Rechenoperationen versehen werden, und ich es so übersichtlicher finde.

Indices im Namen von Variablen zu "verstecken" für sehr oft zu Problemen. Wenn man ein Program später erweitert, müssen dann oft an vielen Stellen Änderungen vorgenommen werden. Seban's Tipp ist deshalb wertvoll. Behalte ihn zumindest im Hinterkopf.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 09.05.2017, 21:41     Titel: Re: Problem mit Cell und Matrix Formatierung
  Antworten mit Zitat      
Zum Ausgangsproblem: Du kannst mit iscell abfragen, ob Daten vom Typ cell ist. Falls wahr, mittels cell2mat in Zahlenwerte umwandeln.
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
manphiz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2017, 10:28     Titel: Re: Problem mit Cell und Matrix Formatierung
  Antworten mit Zitat      
Seban hat Folgendes geschrieben:
Zum Ausgangsproblem: Du kannst mit iscell abfragen, ob Daten vom Typ cell ist. Falls wahr, mittels cell2mat in Zahlenwerte umwandeln.


Super Danke, den iscell Befehl habe ich gesucht.

Bzgl. Tabellen habe ich eine weitere Frage. Gibt es eine Möglichkeit einen bestimmten Wert an Position (x,y) in der (Gui)Tabelle zu platzieren? Bisher kenne ich nur die Möglichkeit ganze Tabellen auf einmal zu füllen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 10.05.2017, 23:04     Titel:
  Antworten mit Zitat      
Gern geschehen.

Hilft dir folgendes, oder missverstehe ich etwas?

Code:
f = figure;
t = uitable(f,'Data',zeros(10,3));
t.Data(2,1) = 1;

_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
manphiz
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.05.2017, 12:35     Titel:
  Antworten mit Zitat      
Ich glaube, du verstehst meine Frage.
Leider geht dein Vorschlag nicht.
"Warning: Struct field assignment overwrites a value with class "double". See MATLAB R14SP2 Release Notes, Assigning Nonstructure Variables As Structures
Displays Warning, for details."

[EDITED, Jan, Bitte kein Top-Quoting der gesamten vorhergehenden Nachricht - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 18.05.2017, 21:41     Titel:
  Antworten mit Zitat      
Nun du versuchst offenbar double mit struct zu überschreiben, das führt zu der Warnung. Tritt diese bei dem von mir geposteten Codeschnipsel auf oder irgendwo anders?

Hast du dies beachtet: "Displays Warning, for details"? Dort dürfte eine Erklärung und Lösungsvorschläge stehen.

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 18.05.2017, 23:39     Titel:
  Antworten mit Zitat      
Hallo,

meine Vermutung ist, dass manphiz ein Release vor R2014b verwendet. Dort ist die . - Syntax zum Setzen und Abfragen von Eigenschaften noch nicht unterstützt.

Ich kann nur immer wieder sagen, dass gerade ein älteres Release ins Profil aufgenommen werden sollte.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2017, 12:56     Titel:
  Antworten mit Zitat      
@ Seban: Es tritt bei deinem Code auf.
@ Harald: Da hast du Recht, ich nutze eine 2013b Version. Schade.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.05.2017, 13:49     Titel:
  Antworten mit Zitat      
Hallo,

Workaround in dem Fall:
Code:
f = figure;
t = uitable(f,'Data',zeros(10,3));
data = get(t, 'Data');
data(2,1) = 1;
set(t, 'Data', data)

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 24.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2017, 14:17     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

Workaround in dem Fall:
Code:
f = figure;
t = uitable(f,'Data',zeros(10,3));
data = get(t, 'Data');
data(2,1) = 1;
set(t, 'Data', data)

Grüße,
Harald


Danke, das funktioniert!
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.