在 MATLAB 中使用 readmatrix 加载多个 Excel 文件

Posted

技术标签:

【中文标题】在 MATLAB 中使用 readmatrix 加载多个 Excel 文件【英文标题】:Loading in Multiple Excel Files using readmatrix in MATLAB 【发布时间】:2021-06-09 20:02:51 【问题描述】:

我在下面有这个短代码,但我正在尝试将 5 个 excel 文件,名称 101、102、103、104 和 105.xlsx 作为单独的单元格导入 matlab 的工作区,这样我以后可以通过调用每个单元格中的一列来制作数字元胞数组。

它们的列数相同 (BS:BX) 我只需要 6 列,但会有不同的行。我是 MATLAB 新手,所以也许我在这里遗漏了一些简单的东西,它不喜欢“filename = (k,'%dtrf.xlsx');”这一行。 “无效的表达式。调用函数或索引变量时,请使用括号。否则,请检查不匹配的分隔符。”

clear all

close all

mkdir myfolder

dir myfolder

for k = 101 : 105

filename = (k,'*.xlsx');

data = readmatrix(strcat(filename),'Range','BS:BX');

end

【问题讨论】:

您好,欢迎来到 SO。您尝试生成文件名或换句话说字符串变量的方式是不对的,请尝试filename=sprintf('%d.xlsx',k) 【参考方案1】:

根据您提供的错误消息和(k,'%dtrf.xlsx') 的格式,您的循环可能类似于:

data=cell([5 1]);
for k=101:105
  filename=sprintf('%dtrf.xlsx',k);
  datak-100 = readmatrix(filename,'Range','BS:BX');
end

其中BSBX 被假定为您的 .xlsx 文件中的有效列名。

【讨论】:

您好,感谢您的评论,我忘了补充说我的 xlsx 文件的确切名称是“101trf.xlsx”,因此为什么 trf 在 for 循环中。它运行没有错误,但我的工作区现在没有任何数据。它的数据是 5x1 单元格,文件名是 105trf.xlsx,k 是 105。 您可以键入data1 来查看从第一个文件中读取的数据,键入data2 来查看第二个文件中的数据,依此类推。

以上是关于在 MATLAB 中使用 readmatrix 加载多个 Excel 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用MATLAB绘制出好看的火山图

ARIMA时间序列预测MATLAB代码模板(无需调试)

在matlab中使用高斯滤波器进行图像去模糊,没有加性噪声

如何在matlab中为图形加标注以及文字说明

关于 matlab 中 quiver 加图例

怎么在matlab中绘制一个函数图像