matlab老是出现java错误_在循环中使用xlsread时出现matlab错误

我试图在一个循环中读取多个csv文件,然后对它们进行一些分析 .

我正在使用MatlabR2015b和Excel 2016 .

问题是在第二次调用 xlsread 时出现以下错误:

>>xlsread('R:\Experiments\ResoFreq_vis_BEH\TapFlick_vis_BEH\Data\s01_rr\1_fingerTapping_s01_rr.csv')

Error using xlsread (line 251)

没有解释没有消息,没有 . 经过一些调试后,我发现它在以下命令中失败:

Excel.workbooks.Open(filename, 0, readOnly);

在openExcelWorkbook.m文件中,该文件位于xlsread堆栈的某个位置 .

我发现很少有人遇到同样的问题,他们的解决方案是使用以下代码强制关闭EXCEL32进程:

[~, computer] = system('hostname');

[~, user] = system('whoami');

[~, alltask] = system(['tasklist /S ', computer, ' /U ', user]);

excelPID = regexp(alltask, 'EXCEL.EXE\s*(\d+)\s', 'tokens')

for i = 1 : length(excelPID)

killPID = cell2mat(excelPID{i});

system(['taskkill /f /pid ', killPID]);

end

但是,这对我不起作用 .

经过一段时间的挖掘后,我尝试手动查看csv我试图打开,同时调试,这意味着在 Excel.workbooks.Open 调用的断点处停止后,我使用:

actxserver('Excel.Application')

ans.Workbooks.Open(filename)

这给了我以下错误:

Error using Interface.000208DB_0000_0000_C000_000000000046/Open

通过matlab检查器查看excel进程时,与Workbooks相关联 .

这就是我设法找到与我的问题相关的所有信息 .

目前唯一对我有用的是运行xlsread,然后从任务管理器手动关闭excel进程,然后再次运行它,直到我拥有所有数据,然后进行分析,这是不可能考虑到的数量我需要加载的文件 .

我不能使用csvread,因为我的文件有混合类型,我尝试过的所有其他函数都没有正确读取csvs(我有一个看起来像这样的字段“[,...,]”)并且该字段一直被解释为除了使用xlsread之外,每个函数中有多行,因此我觉得我别无选择,只能以某种方式修复xlsread .

我很乐意提供解决此问题所需的更多信息

谢谢 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值