matlab - csv文件的Matlab fopen错误
问题描述
我只是想使用 textscan 函数将 csv 文件导入 Matlab。但是每次我运行程序时它总是抛出这个错误
使用 textscan 时出错 无效的文件标识符。使用 fopen 生成有效的文件标识符。
但是正如您在下面的代码中看到的那样,我正在使用 fopen 来准备文件以供 textscan 使用。
S = 'Proto2.csv';
fidi = fopen(S);
C = textscan(fidi, '%f%s%f%f%f%f%f%f%s%f%f%f%f%f%f%f%f%f%f%f%f%f%f', 'Delimiter','\n', 'HeaderLines',11, 'CollectOutput',1);
之后我使用 C 从 csv 文件中获取我需要的数据
解决方案
通常,在对文件句柄进行读取和/或写入操作之前,您必须确保fopen
函数返回的句柄有效。来自 Matlab 的官方文档:
fileID = fopen(filename)打开文件 filename 进行二进制读取访问,并返回一个等于或大于 3 的整数文件标识符。MATLAB® 保留文件标识符 0、1 和 2 用于标准输入、标准输出(屏幕) 和标准误差。
如果 fopen 无法打开文件,则 fileID 为 -1。
fidi
在继续之前检查您的变量值textscan
,我很确定它等于-1
. 发生这种情况要么是因为找不到文件(如果您没有指定完整的绝对路径,Matlab 会在当前工作目录中搜索它)或因为文件上有共享锁(因此,请确保它不是其他应用程序在您尝试阅读时使用)。
推荐阅读
- python - 你如何在 tkinter 屏幕上观看 youtube 视频
- javascript - 如何使用类删除监听器
- ruby-on-rails - 在 Ruby 中使用 RestClient 传递编码的 URL 查询参数会给出不正确的结果
- sql - 使用外键从现有数据库更改身份
- class - Pytorch 的 nn.Linear(x,y) 返回什么?
- css - 如何在 {xaringan} 演示文稿中使 {stargazer} 表更小?
- google-apps-script - 自动归档gmail的脚本突然被删除了
- google-pagespeed - 为什么我的“Core Web Vitals”几乎总是空的?
- lsmeans - 如何解释最小二乘均值和标准误差
- python - 函数内部的while循环