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 nach Dateiauswahl

 

SiRoBo
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 18.12.10
Wohnort: Karlsruhe
Version: 2012b
     Beitrag Verfasst am: 18.12.2010, 18:34     Titel: Import nach Dateiauswahl
  Antworten mit Zitat      
Hallo zusammen.

erstelle gerade ein GUI, in das ich Messdaten bei Bedarf importieren kann.

Mein Problem: Wie kann ich eine per Auswahldialog ausgewählte Datei importieren (weil der Dateiname und Pfad ja variiert)?
Bisher schaut es so aus:
Code:

function pushbutton6_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile('*.xls', 'Select the xls-file');
cd ??????????
daten=xlsread('??????????');     % Importiert Daten als Matrix
x=daten(1,1:11); y=daten(2,1:11); z=daten(3,1:11);  % Ordnen der Daten
 


Bei den Fragezeichen müsste jetzt ja zum einen der Speicherpfad rein und der Dateiname. Aber die weiß ich ja nicht vor der Auswahl. Habe viel ausprobiert mit "filename" und "pathname", schluckt er aber nicht.

Kann jemand helfen? Habe in der Hilfe nichts gefunden.

Vielen Dank schonmal.
_________________

Garbage in, garbage out.
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: 18.12.2010, 23:16     Titel: Re: Import nach Dateiauswahl
  Antworten mit Zitat      
Hallo SiRoBo,

Code:

function pushbutton6_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile('*.xls', 'Select the xls-file');
daten=xlsread(fullfile(pathname, filename));
 


Hattest Du dies versucht:
Code:

? Das wäre dann ein Standardproblem mit der "funktionellen Form":
Korrekt wäre:
Code:


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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 18.12.10
Wohnort: Karlsruhe
Version: 2012b
     Beitrag Verfasst am: 20.12.2010, 15:30     Titel:
  Antworten mit Zitat      
Hat geklappt, danke.
Habe erst auch gedacht, dass es nicht funktioniert. Aber die Übergabe an den Workspace macht sich ja nicht von selbst...
Dürfte aber mit "assignin()" kein Problem mehr darstellen.

Gruß, Simon
_________________

Garbage in, garbage out.
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: 21.12.2010, 01:44     Titel:
  Antworten mit Zitat      
Hallo Simon,

Zitat:
Aber die Übergabe an den Workspace macht sich ja nicht von selbst...
Dürfte aber mit "assignin()" kein Problem mehr darstellen.

Davon rate ich sehr ab. Erstens macht es ein Programm so unübersichtlich, dass das Debuggen Wochen dauern kann, wenn es mal im Laufe der Zeit gewachsen ist. Zweitens bremst das "Poofing" Matlab sehr aus, da die interne Variablen-Verwaltung durch das "ferngesteuerte" Einfügen von Variablen strapaziert wird.

Eine geordnete Übergabe der Variablen in Inputs und Outputs von Funktionen ist auf jeden Fall klarer und effizienter.

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

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 18.12.10
Wohnort: Karlsruhe
Version: 2012b
     Beitrag Verfasst am: 21.12.2010, 11:32     Titel:
  Antworten mit Zitat      
Hallo Jan,

das Berechnungsfile existiert schon als m-file und soll auch so erhalten bleiben. Ansonsten würde ich auch die komplette Berechnung in das GUI-m-file reinschreiben.
Und das Berechnungsfile hat die Daten bisher dann sowieso im base-Workspace abgespeichert.

Vielleicht erfolgt noch die Integration (später).
Zudem wird das Programm nicht mehr groß wachsen, weil es eben nur eine Eingebamaske ist.

Gruß, Simon
_________________

Garbage in, garbage out.
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: 21.12.2010, 13:01     Titel:
  Antworten mit Zitat      
Hallo Simon,

Ja, verstehe ich.
Ich warne nur grundsätzlich davor, dass unsaubere Programmiertechniken zu unsauberen Programmen führen. Das heißt ja nicht, dass sie nicht laufen!

Alle Programme fangen mal klein an. Dann möchte irgendjemand das ein oder andere anfügen. Und schließlich lassen sich plötzlich noch viel allgemeinere Probleme damit lösen... Wenn man dann gleich ordentlich begonnen hat, gibt das keine größeren Schwierigkeiten und man bekommt Übung im strukturierten Programmieren.

Ich bin immer noch von einem Software-Desaster der AOK beeindruckt: Die hatten eine satte Milliarde Euro (1000 Millionen!) in eine neue Datenbank investiert, die fast fertig gestellt wurde. Das Programm war aber so vermurkst geschrieben, dass sich das letzte fehlende eine Prozent beim besten Willen nicht mehr sauber einfügen ließ. Und "unsauber" einfügen bedeutete, dass eine Änderung jeweils zwei weitere Änderungen erzwang und das Fixen eines Bugs zu zwei neuen Problemen führte.
Daraufhin haben sie den ganzen Mist wieder eingestampft.

Also wenn Du Variablen unbedingt über den Base-Workspace fließen lassen möchtest, versuche dabei wenigstens ein paar Millionen einzustreichen :-)

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.