700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > matlab读取xlsx文件 将大Excel(xlsx)文件加载到matlab中

matlab读取xlsx文件 将大Excel(xlsx)文件加载到matlab中

时间:2020-06-10 12:07:03

相关推荐

matlab读取xlsx文件 将大Excel(xlsx)文件加载到matlab中

我使用Windows 64bit,8GB RAM和Matlab 64bit .

我试图将.xlsx文件加载到matlab中 . 文件大小约为700MB,包含673928行和43列的工作表 .

首先,我使用GUI工具'uimport' . 选择文件路径和名称后,GUI工具需要大约3分钟才能读取.xlsx文件,然后在表格中显示数据 . 如果我选择“单元阵列”,则需要大约10分钟将数据导入工作区 .

>>whos

Name Size Bytes Class Attributes

NBPPdataV3YOS1 673928x43 3473588728 cell

它工作得很好,但我有很多.xlsx文件要导入 . 使用GUI工具导入每个文件是不可能的 . 所以我使用GUI工具生成这样的函数

function data = importfile(workbookFile, sheetName, range)

%% Import the data

[~, ~, data] = xlsread(workbookFile, sheetName, range);

data(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),data)) = {''};

简单地说,我忽略了一些不相关的代码 . 但是,当我使用此函数导入数据时,它不能很好地工作 . Matlab和Excel使用的RAM大幅增加,直到几乎所有的RAM都被使用 . 30分钟后无法导入数据 .

我也试着这样做,

filename='E:\data.xlsx';

excelObj = actxserver('Excel.Application');

fileObj = excelObj.Workbooks.Open(filename);

sheetObj = fileObj.Worksheets.get('Item', 'sheet2');

%Read in ranges the same way as xlsread!

indata = sheetObj.Range('A1:AQ673928').Value;

xlsread()也会出现同样的问题 .

我的问题是:

GUI导入工具是否使用xlsread()来读取.xlsx文件?如果是,为什么生成的函数不起作用?如果不是,它使用哪个界面?

2.有没有一种有效的方法将Excel文件加载到Matlab中?

谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。