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

Cellwerte zu UINT32 konvertieren

 

P.stone
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 28.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2013, 10:42     Titel: Cellwerte zu UINT32 konvertieren
  Antworten mit Zitat      
Hallo zusammen,
ich bin absoluter Matlab neuling und muss die Auswertung einer Excel Datei machen.
Nun habe ich Probleme beim Einlesen der Datei. Da die Werte in den spalten A und B mehr als 9 Zeichen haben werden Sie als ^*e+9 angezeigt.
Meine Idee war nun die Spalten in UINT32 zu konvertieren, damit die Zahlen richtig angezeigt werden. Habe nun schon lange rumprobiert, er zeigt mir aber maximal an, dass ich eine Zelle nicht in uint32 konvertieren kann.
Die Datei habe ich gekürzt angehängt.

Gute Tipps, wie ich die Datei nach bestimmten WErten durchsuchen kann sind natürlich auch sehr wilkommen.

Vielen Dank für die Hilfe!

Hier meine Funktion zum Einlesen der Datei:

Code:

function data = fcn_read_xls_beta2 (filename)
exl = actxserver('excel.application');
exlWkbk = exl.Workbooks;
exlFile = exlWkbk.Open([pwd '\' filename]);
exlSheet2 = exlFile.Sheets.Item('Ergebnisse'); %Daten aus Ergebnisse
dat_range = ('A4:E5'); % Bereich der eingelesen wird
rngObj = exlSheet2.Range(dat_range);
data = rngObj.Value;
 


Export_y.xls
 Beschreibung:

Download
 Dateiname:  Export_y.xls
 Dateigröße:  36 KB
 Heruntergeladen:  921 mal
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: 28.06.2013, 11:36     Titel: Re: Cellwerte zu UINT32 konvertieren
  Antworten mit Zitat      
Hallo P.stone,

Was bedeutet "werden Sie als ^*e+9 angezeigt" genau?
Zunächst mal duzen wir uns im Forum, angezeigt wird hier auch niemand und das Emoticon ^*e+9 kenne ich nicht ;-)
Aber im ernst, wenn die Werte so im Command-Window angezeigt werden, liegt das nur an der Darstellung imm Command-Window. Intern werden die Zahlen exakt gespeichert. Wenn man dies im Command Window eintippt, ändert sich die Darstellung:
Code:

Um Zu wissen, wieso in Deinem Code ein CELL nicht konvertiert werden kann, müssten wir den entsprechenden Code sehen. Dann wäre ien Verbesserungsvorschlag ganz einfach.

Um die Werte zu durchsuchen, würde ich sie zunächst in eine Matrix umwandeln (welchen Typ und Dimension hat "data"?) und dann FIND verwenden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
P.stone
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 28.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.06.2013, 12:03     Titel:
  Antworten mit Zitat      
Vielen Dank.

Habe gesehen, dass es im Command Window richtig angezeigt wird. Nur wenn ich im Workspace ,,ans" anklicke kommt als Messwert_ID der Wert 3.1974e+9.
Das ist dann aber für die weitere Auswertung wahrscheinlich egal oder?
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: 28.06.2013, 16:45     Titel:
  Antworten mit Zitat      
Hallo P.stone,

Ja, dies ist nur die Anzeige. Matlab versucht schlau zu sein und nicht alle 16 gültigen Ziffern anzuzeigen, weil das sowieso kein Mensch lesen kann.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
P.stone
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 28.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2013, 14:00     Titel:
  Antworten mit Zitat      
Wie kann ich das ganze in eine Matrix umwandeln? Habe es mit cell2mat probiert, jedoch bekomme ich folgende Fehlermeldung:
A = cell2mat (ans);
??? Error using ==> cell2mat at 47
All contents of the input cell array must be of the same data type.

Gibt es hier alternative Befehle ide mit der kompletten Tabelle umgehen können?
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: 02.07.2013, 09:53     Titel:
  Antworten mit Zitat      
Hallo P.stone,

"ans" zu benutzen ist immer eine schlechte Idee. Je nach dem wo Du genau den Befehl schreibst, bekommst Du natürlich andere Werte dafür. Und wir können deshalb den Inhalt von Deinem "ans" nicht kennen.

Ich lese Excel-Files normalerweise mit XLSREAD ein. Dann können die unterschiedlichen Typen in in den 3 Outputs gefunden werden.

Zitat:
??? Error using ==> cell2mat at 47
All contents of the input cell array must be of the same data type.

Die bedeutet, dass das CELL-Array Elemente unterschiedlichen Typs beinhaltet. Das sind wohl Doubles und Strings, rate ich mal. Du selbst kannst das aber herausfinden. Mit CELLFUN('isclass', ...) und SSCANF könntest Du die Strings in Zahlen umwandeln.

Gruß, Jan
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.