You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从列表读取.mat文件?R读取文件夹.mat文件报错解决

解决R读取多个.mat文件的报错问题

错误原因

readMat函数(来自R.matlab包)仅支持传入单个文件路径字符串,而你用list.files获取的是包含多个文件名的字符向量,直接传入就会触发Error in file(con, open = "rb") : invalid 'description' argument错误。

修正步骤

  1. 确保安装并加载R.matlab包
install.packages("R.matlab")  # 首次使用需安装
library(R.matlab)
  1. 优化文件路径获取逻辑
    添加pattern = "\\.mat$"过滤仅获取.mat文件,full.names = TRUE获取完整文件路径(避免工作目录冲突):
target_dir <- "你的目标文件夹路径"  # 替换为实际路径,比如"C:/data/mat_files"
filenames <- list.files(target_dir, pattern = "\\.mat$", recursive = TRUE, full.names = TRUE)
  1. 批量读取文件
    用lapply遍历每个文件名,逐个读取.mat文件,结果会存放在一个列表中(每个元素对应一个文件的内容):
mat_data_list <- lapply(filenames, function(file_path) {
  readMat(file_path)
})

可选:添加错误处理

如果部分文件读取失败,可加入tryCatch捕获错误并提示,避免整个批量任务中断:

mat_data_list <- lapply(filenames, function(file_path) {
  tryCatch(
    expr = readMat(file_path),
    error = function(e) {
      message(paste("读取文件失败:", file_path, ",错误信息:", e$message))
      return(NULL)
    }
  )
})

可选:合并数据(若文件结构一致)

如果所有.mat文件的数据结构相同,可将列表中的数据合并为单个对象:

merged_data <- do.call(rbind, mat_data_list)

内容的提问来源于stack exchange,提问作者thefriendly_plague.doctor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:38:24