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

Import eines .mat Files und übergabe der Werte an ein handl

 

broetchenbaecker
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2011, 18:25     Titel: Import eines .mat Files und übergabe der Werte an ein handl
  Antworten mit Zitat      
Hallo,

bin noch relativ unerfahren mit Matlab, daher kann es sein, dass ich nicht nach den richtigen Befehlen gesucht habe und ich dadurch einen bereits existierenden Lösungsweg übersehen habe.

Zu meinem Problem:
Ich habe das GUI zunächst so geschrieben dass eine Exeltabelle importiert wurde und der Wert dann an ein Handle gegeben wurde:
Code:

% Select data and get name
[Filename,Pathname] = uigetfile('*.xls')
% Read: Data
handles.profile = xlsread(Filename);


Nun möchte mein Chef aber gerne dass ich statt einer Exeltabelle ein .mat-File als Grundlage nehme.
Ideal sollen die ersten zwei oder drei Zeilen noch Kommentar sein und erst ab der 3. Zeile die Zahlen anfangen die Importiert werden sollen.

Die Dateien würden also wie folgt ausschauen:

1. Zeile 1. Spalte Kommentar
2. Zeile 1. Spalte Kommentar
3. Zeile 1. Spalte Leer
4. Zeile 1. Spalte Zahl 2. Spalte Zahl
5. Zeile 1. Spalte Zahl 2. Spalte Zahl
...
...
...


vielleicht bis Zeile 50. Die Zahlen sind Dezimalzahlen der Form XX,XX.
Könnte dabei das ' , ' ein Problem darstellen, wie kann ich das beheben.

Gruß,

Jan B.
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 28.01.2011, 09:55     Titel:
  Antworten mit Zitat      
Hi,

das verstehe ich nicht ganz. Du hast die Exceldaten in ein cell-Array kopiert und dieses als mat-File abgespeichert und dieses möchtest du laden?

Also wenn du mit ',' meinst, dass in deinem cell-Array nun strings stehen kannst du diese mittels str2double(strrep(var,',','.')) wieder in doubles umwandeln...
Code:

d = {'hallo' 'hallo';'hallo' 'hallo';'' '';'22,5' '22,5';'22,5' '22,5'};
dZahlen = str2double(strrep(d(4:end,:),',','.'));
 


Nur was hat das ganze mit handles zu tun? Ich verstehe den Themennamen nicht ganz...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
broetchenbaecker
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2011, 10:15     Titel:
  Antworten mit Zitat      
Ok, dann versuche ich es nochmal auszudrücken.

Ich hab ein GUI das einen Profilquerschnitt einlesen soll.
Bis jetzt hatte ich z.B. eine 15x2 Matrix, also 15 Zeilen, 2 Spalten die ich in Excel eingegeben hatte.
Diese Werte möchte ich in Zukunft dann immer in einem .mat-File stehen haben und von dort aus importieren.
Wenn ich also in dem GUI auf eine Schaltfläche drücke, soll sich ein Fenster öffnen, bei dem ich auswählen kann, welche .mat-File ich haben will.
Diese soll dann importiert werden und die Werte sollen einer Variabeln in der GUI zugeordnet werden, damit ich damit weiterrechnen kann.
Dafür habe ich dass bisher mit dem Excel import so gelöst, dass ich die Werte an handles.profile übergeben habe.
Das gleiche möchte ich mit den Werten aus dem .mat-File auch machen.


Hoffe ich konnte es jetzt etwas verständlicher ausdrücken.

Gruß,
Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 28.01.2011, 10:29     Titel:
  Antworten mit Zitat      
Hi,
meinst du soetwas?
Code:

[filename, pathname] = uigetfile('*.mat','Daten laden(*.mat)');
if ~isequal(filename,0)
handles.profile = load(fullfile(pathname, filename));
guidata(handles.figure1,handles)% figure1 = Tag deiner figure
end
 


So lädst du diese und speicherst sie in der handlestruktur ab, so dass sie dir in anderen Callbacks der GUI zur Verfügung stehen...

MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
broetchenbaecker
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2011, 10:55     Titel:
  Antworten mit Zitat      
Hey,

danke schonmal für die Antwort, dürfte vermutlich mein Problem lösen. Hab nur gerade keine Möglichkeiten das zu prüfen, da ich erst Montag wieder arbeiten bin. Werde dann aber nochmal schreiben, ob es zur Lösung geführt hat.

Gruß,

Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
broetchenbaecker
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2011, 15:09     Titel:
  Antworten mit Zitat      
Hallo,

bin jetzt dazu gekommen, dies umzusetzen, nur weiß ich nicht, wie ich die einzelnen Zellen ansteuern kann.
Bisher ging dies über handles.profile(x,y), damit konnte ich gezielt Werte abgeifen. Welchen Befehl muss ich jetzt nehmen bzw. wie komme ich jetzt an die einzelen Werte?

Gruß,

Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 03.02.2011, 16:39     Titel:
  Antworten mit Zitat      
Hey,
Zitat:

wie komme ich jetzt an die einzelen Werte?

Das weiß ich auch nicht genau, da ich nicht weiß wie du die mat- Files erzeugt bzw abgespeichert hast. Das einfachste wäre, wenn du unter deiner Zeile
Code:

[filename, pathname] = uigetfile('*.mat','Daten laden(*.mat)');
 

mal ein Breakpoint setzt und im Command Window
Code:

c = load(fullfile(pathname, filename));
 

eingibst. Dann enspricht handles.profile dem c und du kannst schauen (im Workspace) wie du die einzelnen Variablen aufrufen kannst...

MfG Marco
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.