2017-06-22 48 views
0

我完成了一個很長的Matlab代碼,在Matlab中工作得很完美。 現在我試圖編譯該應用程序,將其用作其他計算機上的.exe文件。編譯uigetfile函數和importdata時遇到的麻煩|| Matlab

相關代碼:

[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 

代碼導入一個.CSV文件。我使用[FileName,PathName]。但在第4行A = importdata(FileName,delimiterIn,headerlinesIn);代碼停止工作,我得到以下錯誤信息:

無法打開文件。

錯誤=> name_of_my_program.m線4

任何想法如何解決這個問題?我不能在代碼中改變太多,因爲代碼中使用了變量A.dataA.headliners

我使用importdata函數錯了嗎? importdata函數不適用於已編譯的應用程序嗎?


csvreadimportdata istead的工作,但如上面提到的,我正在尋找一個解決方案,是我不需要改變我的長碼的所有變量。所以輸出必須是一個1x1 structA.dataA.textdataA.colheaders


我使用MATLAB R2017a並在

回答

2

編譯applicarion很可能無法在同一文件夾作爲輸入運行Appliaction編譯文件,所以您應該更新您的代碼以使用fullfile生成完整路徑文件名:

[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

如果更改'F ilename = fullfile(Pathname,FileName);'Filename = fullfile(PathName,FileName);'(PathName中的大號字母)它是完美的! 非常感謝 –

+0

完成! :)沒有發現首都N ... :) – matlabgui