首页 文章

麻烦编译uigetfile函数和importdata || Matlab

提问于
浏览
0

我完成了一个很长的Matlab代码,在Matlab中运行得非常完美 . 现在我正在尝试编译应用程序,将其用作其他计算机上的.exe文件 .

相关代码:

[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 文件 .

uigetfile 工作正常,因为我使用 [FileName,PathName] . 但在第4行 A = importdata(FileName,delimiterIn,headerlinesIn); 代码停止工作,我得到以下错误信息:

无法打开文件 . => name_of_my_program.m第4行出错

任何想法如何解决这个问题?我无法在代码中进行太多更改,因为varibales A.dataA.headliners 在代码中使用了很多 .

我使用 importdata 功能错了吗? importdata 函数不适用于已编译的应用程序吗?


csvread 等于 importdata 确实有效,但如上所述,我需要更改我的长代码中的所有变量 . 所以输出必须是 1x1 struct ,包含 A.dataA.textdataA.colheaders


我使用MATLAB R2017a和Appliaction Compiler

1 回答

  • 2

    编译后的应用程序可能没有与输入文件在同一文件夹中运行,因此您应该使用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
    

相关问题