Kilian Weber
Kilian Weber

Reputation: 160

Troubles compiling uigetfile function and importdata ||Matlab

I finished a long Matlab code, that works just perfect in Matlab. Now I'm trying to compile the app, to use it as an .exe file on other computers.

relevant 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

the code imports a .CSV file.

The uigetfile works just fine, as I used [FileName,PathName]. But at line 4 A = importdata(FileName,delimiterIn,headerlinesIn); the code stops working an I get the following Error message:

Unable to open File.

Error in => name_of_my_program.m line 4

Any ideas how to solve this problem? I can't change much in the code, as the varibales A.data and A.headliners are used a lot in the code.

Did I use the importdata function wrong? Does the importdata function not work with compiled apps?


csvreadistead of importdata does work, but as mentioned above, I'm looking for a solution, were I don't need to change all the variables in my long code. So the output got to be a 1x1 struct containing A.data, A.textdata and A.colheaders


I use MATLAB R2017a and the Appliaction Compiler within

Upvotes: 0

Views: 138

Answers (1)

matlabgui
matlabgui

Reputation: 5672

The compiled applicarion is probably not running in the same folder as your input file, so you should update your code to generate the full path filename using 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

Upvotes: 2

Related Questions