尝试在文本文件的前两列中读取时使用texscan错误

1次查看(最近30天)
Samuele Bolotta.
Samuele Bolotta. 于5月1日
我正在尝试使用下面的代码来读取文本文件。
从文本文件中获取事件
prompt_totalfiles ='输入要输入的文件数:';%请求文件数
total_files =输入(prompt_totalfiles);
filenames = cell(total_files,1);
为了file = 1:Total_files
[InputFile,Path] = UigetFile('*。文本');
文件名{file} = fopen(InputFile);
结尾
j = 1;
Baseline_Adjustment = 0.1;%在此放入基线光电探测器值(用LED读出,但贴片电缆在间距黑色
dff1 = []; dff2 = []; dff3 = []; dff4 = []; dff5 = []; dff6 = []; dff7 = []; dff8 = []; dff9 = []; dff10 = [];dff11 = [];
wholedff = {dff1, dff2、dff3 dff4, dff5, dff6, dff7, dff8, dff9, dff10, dff11};
%从文本文件中读取格式化数据
为了file = 1:Total_files
b = textscan(filenames {file},“% n % n”,-1,“分隔符”'/ t');
这是我收到的错误:
错误使用TextScan.
无效的文件标识符。使用Fopen生成有效的文件标识符。
错误在刺激状态(第17行)
b = textscan(filenames {file},“% n % n”,-1,“分隔符”'/ t');
我想读到的文本文件是这样:我想只读前两个列。
你能帮我么?谢谢!

接受答案

guillaume.
guillaume. 于5月1日
“文件标识符无效。使用fopen生成有效的文件标识符。”
通常会收到此错误,因为文件ID f 给了你--1表示 f 无法打开文件。
有很多原因 f 可能无法打开文件。最有可能的原因是您要求它打开一个不存在的文件(至少在您让它查看的位置)。
出于启动,可以检索所选的路径 Uigetfile. 但从不告诉 f 看看那条路。
FileNames {file} = fopen(fullfile(path,Inputfile));
可以解决这个问题。当然,你应该经常检查 f 成功,所以补充:
如果filenames {file} == -1
错误('无法打开文件“%s”',fullfile(path,InputFile));
结尾
我强烈建议重命名 文件名 变量到其他东西, fileids. 也许绝对不包含文件名。它包含文件indentifiers:数字。
此外,我强烈建议在同一个循环中打开,读取和关闭文件,而不是通过3种不同的循环。但是,如果您使用的任何合理最近的MATLAB版本,我建议使用 可阅读 代替 TextScan。 可阅读 应根据自己的文件格式,并打开和关闭文件。
最后,请注意,编号的变量总是一个坏主意,强迫您编写更多的代码,而不是必需的代码。在这里,你可以创建 wholedff 只需:
Wholedff =细胞(1,11);

更多答案(0)

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!