如何从目录中选择文本文件并在GUI matlab中读取它

时间:2012-12-22 08:57:19

标签: matlab user-interface

我有一个GUI系统应该从目录中选择一个文本文件,打开它并在代码中读取它。我有这个代码(获取文本文件的部分):

function FindCallback(source,eventdata)
     [FileName,PathName]= uigetfile('*.txt','browse')
 s={};
           fid = fopen('*.txt'); 
    tline = fgetl(fid); 
        while ischar(tline) 
           s=[s;tline]; 
           tline = fgetl(fid); 
        end

它显示了一个错误:

Invalid file identifier.  Use fopen to generate a valid file
identifier.
Error in ==> GUI_oo>FindCallback at 77
    tline = fgetl(fid);
??? Error while evaluating uicontrol Callback

任何建议..

由于

2 个答案:

答案 0 :(得分:2)

这是你的问题:

fid = fopen('*.txt');

没有文件名“* .txt”,fopen的参数应该是您在上面的FileName中存储的真实文件名。

所以这应该是:

fid = fopen([PathName FileName]);

您可能还想在fopen之前检查FileName是否为0(IIRC),因为用户可能会取消文件选择。试试这个:

if FileName == 0
   % maybe display a warning here
   return
end

答案 1 :(得分:1)

应该改为

path = fullfile([FileName PathName])
fid = fopen(path);

打开* .txt错误