2017-06-22 5 views
0

Ich habe einen langen Matlab-Code fertiggestellt, der in Matlab perfekt funktioniert. Jetzt versuche ich die App zu kompilieren, um sie als eine .exe-Datei auf anderen Computern zu verwenden.Probleme beim Kompilieren der uigetfile-Funktion und der Importdaten || Matlab

entsprechender Code:

[FileName,PathName] = uigetfile('*.CSV','Select the data file'); 
delimiterIn = ','; 
headerlinesIn = 11; 
A = importdata(FileName,delimiterIn,headerlinesIn); % A becomes a 1x1 struct containing data, textdata and colheaders 

der Code importiert eine .CSV Datei.

Die uigetfile funktioniert gut, wie ich [FileName,PathName] verwendet. Aber in Zeile 4 A = importdata(FileName,delimiterIn,headerlinesIn); der Code hört auf zu arbeiten und ich bekomme folgende Fehlermeldung:

Datei kann nicht geöffnet werden.

Fehler => name_of_my_program.m Linie 4

Irgendwelche Ideen, wie dieses Problem zu lösen? Ich kann nicht viel im Code ändern, da die Variablen A.data und A.headliners viel im Code benutzt werden.

Habe ich die importdata Funktion falsch verwendet? Funktioniert die importdata Funktion nicht mit kompilierten Apps?


csvread istead von importdata funktioniert, aber wie oben erwähnt, ich bin nach einer Lösung gesucht, waren ich brauche, um alle Variablen in meinem langen Code nicht zu ändern. So bekam die Ausgabe zu einem 1x1 struct enthält A.data, A.textdata und A.colheaders


Ich benutze MATLAB R2017a und der Appliaction Compiler innerhalb

Antwort

2

Die kompilierte applicarion wird wahrscheinlich nicht im selben Ordner wie die Eingabe läuft Datei, so sollten Sie Ihren Code aktualisieren Sie den vollständigen Pfad Dateiname mit fullfile zu generieren:

[FileName,PathName] = uigetfile('*.CSV','Select the data file'); 
delimiterIn = ','; 
headerlinesIn = 11; 
if FileName == 0; return; end 
Filename = fullfile (PathName, FileName); 
A = importdata(Filename,delimiterIn,headerlinesIn); % A becomes a 1x1 struct containing data, textdata and colheaders 
+0

wenn Sie 'F ändern ilename = fullfile (Pfadname, Dateiname); 'zu' Dateiname = fullfile (Pfadname, Dateiname); '(großer Buchstabe N in Pfadname) ist perfekt! Vielen Dank –

+0

Fertig! :) Habe die Hauptstadt N nicht entdeckt ... :) – matlabgui

Verwandte Themen