-
运用MATLAB批量读取excel表格
2020-05-25 23:53:44运用MATLAB批量读取excel表格 **运用MATLAB批量读取excel表格****需要待读取的excel表格****Step1:读取数据的路径,通过dir函数获取特定地址文件夹中的文件列表。****Step2:循环读取每一个文件的数据,并将其存到...运用MATLAB批量读取excel表格
需要待读取的excel表格
Step1:读取数据的路径,通过dir函数获取特定地址文件夹中的文件列表。
path = 'C:\Users\Administrator\Desktop\'; %此处为需要读取的文件所在路径 Filesname = dir(strcat(path,'*.xlsx')); %找到当前路径文件夹下的以.xlsx为后缀的文件名,strcat是横向连接字符的函数
path是文件夹的路径,strcat是横向连接字符的函数,path为需要批量读取的excel文件的所在路径。
Filesname 为文件路径下的每个xlsx文件的地址和名称。Step2:循环读取每一个文件的数据,并将其存到一个根据循环命名的与原始数据大小一致的二维矩阵中。
Length = length(Filesname ); %计算文件夹里xls文档的个数 for i = 1:Length %批量读取文件的内容并保存 xls_data = xlsread(strcat(path,Filesname (i).name)); file_name = Filesname ( i ).name; [m,n] = size(xls_data); %获取读取的单个excel的内容大小 eval(['T',num2str(‘i’),'=','xls_data']); end
应用length函数获取数组长度(即需要批量处理的excel文件的个数)。
xlsread为MATLAB中excel文件的读取函数,eval函数的功能是将字符串转换为matlab可执行语句。Step3:完整代码
path = 'C:\Users\Administrator\Desktop\'; %此处文件地址改为需要的文件夹路径 Filesname = dir(strcat(path,'*.xlsx')); %找到当前路径文件夹下的以.xlsx为后缀的文件名,strcat是横向连接字符的函数 Length = length(Filesname ); %计算文件夹里xls文档的个数 for i = 1:Length %批量读取文件的内容并保存 xls_data = xlsread(strcat(path,Filesname (i).name)); file_name = Filesname (i).name; [m,n] = size(xls_data); eval( ['T',num2str(i),'=','xls_data'] ); end
代码仅供参考,希望能帮助到大家!!
-
如何用Matlab批量读取Excel 表格 .csv .xlsx .xls格式文件并整合成一个.mat格式文件保存
2020-12-03 14:18:43一个文件夹有三百多多个.csv格式的表格,我需要读取所有的表格,提取每一个表格的第7列,然后将所有表格的第七列的数据依次排列整合在一个表格中。 下图为处理前的文件的一部分 下面是实现这些功能的Matlab代码。我...一个文件夹有三百多多个.csv格式的表格,我需要读取所有的表格,提取每一个表格的第7列,然后将所有表格的第七列的数据依次排列整合在一个表格中。
下图为处理前的文件的一部分
下面是实现这些功能的Matlab代码。我用的Matlab版本是2020版的。有些代码需要根据自己实际的需要进行更改,比如如果你读取的文件格式是.xls就可以把第五行的.csv改成.xls。或者你希望输出文件名称为别的名字,你可以把代码中所有的C4都换掉。或者你不需要只保留第七列的数据,你要保留所有的数据,就可以把相关的代码删掉后运行
clear; close all; clc; Files=dir('*.csv'); %读取当前文件夹里所有.csv的文件,且把文件名按顺序读取在Files中 n=length(Files); %n表示Files中有多少个文件 x=Files(1).name; %x表示Files中的第一个文件的名字 z=importdata(x); %读取第一个.csv文件且命名为z z=z(:,6);%因为只需要第七列的数据,所以用这行代码把z变成只有第七列数据的表格 C4=z;%让C4和z相等,z会不断变化,C4是最终文件 for i=1:n-1 x=Files(i+1).name; %依次读取后面Files的每个名字 z=importdata(x); %依次读取文件夹中.csv的文件 z=z(:,6); %从z中提取我所需要的第7列的数据 C4=[C4;z];% 把z那列的数据接在C4那列的下面 %下面两行代码用于在命令窗口显示代码运行的进度,因为有时候文件太多处理的时间长,这个可以不要 Dis=strcat('当前进度 ',int2str(i/n*100),'%'); disp(Dis) %循环这个步骤直到所有的.csv文件都集成在C4中 end save C4 %保存C4为C4.mat到当前文件夹
下面是最后生成的.mat格式文件,这个文件整合了所有的数据,有七千多万行…
-
批量读取EXcel内容的Matlab程序
2019-01-02 10:59:50使用Matlab编写的小程序,用于批量读取Excel内容。本程序中用于读取特定字符的内容,可自行根据需要更改 -
matlab批量储存变量_Matlab批量处理excel文件并画图保存
2020-12-22 20:36:03%% 批量处理excel文件并画图保存%% 清除变量信息clc ;clear ;%% 转入数据文件目类cd('F:\实验调研\测试数据\Jitter') %该文件夹是你存放多个excel文件的文件夹folder = dir('*.csv'); %读取文件夹下的excel文件,...%% 批量处理excel文件并画图保存
%% 清除变量信息
clc ;
clear ;
%% 转入数据文件目类
cd('F:\实验调研\测试数据\Jitter') %该文件夹是你存放多个excel文件的文件夹
folder = dir('*.csv'); %读取文件夹下的excel文件,返回一个结构体,结构体里面保存的是每个excel文件的信息
n = length( folder ); %文件夹下一共有几个excel文件,以便下面的循环使用
%% 开始对文件夹下的excel文件进行批量处理
for k = 1 : n
file_name = folder(k).name ; %提取excel文件的名字
file_name = char( file_name ) ;
[Data, text, alldata] = xlsread(file_name) ; %读取excel文件的数据,这里我只使用到文件中的Data,
%所以可以改为:
[Data] = xlsread(file_name) ;
%% IV Format Conversion,把数据转为数值,保存
V = alldata( : , 1 ) ;
I = alldata( : , 3 ) ; %这两行的内容我没有使用,提供给需要的小伙伴
V = cell2mat( V ) ;
I = cell2mat( I ) ;
%% 开始画图
plot( V, I , 'b*-' , 'Linewidth' , 3 ) ; %这部分可以改成你需要对数据进行的画图处理
grid on
%%转入图片保存路径
cd('F:\实验调研\测试数据\Jitter_图片') %转到保存图片的路径
%%原数据文件名字问XXX.xlsx,因此需要去除.xlsx(即文件名的后缀),剩余XXX为图片名字
Position = find( file_name == '.' ) ;
Picturename = file_name( 1 : Position-1 ) ;
saveas( gcf, Picturename , 'bmp' ) %保存图片为bmp格式,这里你也可以改成jpg格式
clf
%% 处理下一个数据
cd('F:\实验调研\测试数据\Jitter')
end
%% 返回m文件路径
cd('F:\实验调研\测试数据')
-
批量读取_【R语言】批量读取Excel数据并合并(升级版)
2021-01-14 04:56:15我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:张敬信:【Matlab/R语言】批量读入Excel文件zhuanlan.zhihu.com近年来,R语言技术突飞猛进,再来一篇更简洁高级的。批量读取并合并,道理很简单,总共分...我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:
张敬信:【Matlab/R语言】批量读入Excel文件zhuanlan.zhihu.com近年来,R语言技术突飞猛进,再来一篇更简洁高级的。
批量读取并合并,道理很简单,总共分三步:
(1) 获取批量数据文件的路径
(2) 循环机制批量读取
(3) 合并成一个数据文件
强大的purrr包+管道,使得后两步可以同时做,或者一气呵成。
载入R包:
library(tidyverse) library(readxl) library(writexl)
以xlsx文件为例,如果是xls文件,改用read_xls()函数即可,或者不区分,直接用read_excel()也行。
将合并后的数据写出到 Excel :
write_xlsx(df, "新工作簿.xlsx") # 写出
一. 多个数据表列名相同
这是最常见的情形,读取+按行堆叠合并,即可得到总的数据表。再分两种情况讨论:
- 数据在多个工作簿(即多个xlsx文件)
比如,在datas文件夹下有3个xlsx文件,每个文件的列名都是相同的:
files = list.files("datas/", pattern = "xlsx", full.names = TRUE) df = map_dfr(files, read_xlsx) # 批量读取+按行堆叠合并 df
注1:数据文件名可以随便,不需要规律命名。
注2:数据文件甚至可以嵌套多层文件夹,只需要设置参数 recursive = TRUE.
2. 数据在一个工作簿的多个工作表(1个xlsx文件,包含多个sheet)
还是上述数据,只是都在 “1-3月提奖额.xlsx ”中:
path = "1-3月提奖额.xlsx" df <- map_dfr(excel_sheets(path), ~ read_xlsx(path, sheet = .x)) # 批量读取+按行堆叠合并
结果同上。
注:同样,各个sheet可以随便起名,不需要规律命名。
二. 多个数据表列名不同
都是同样的批量读取,但合并时不能只是简单的按行堆叠,而是需要做数据连接(join),得到总的数据表。也分两种情况讨论:
- 数据在多个工作簿(即多个xlsx文件)
比如,datas 文件夹下有3个xlsx文件:
注意,3个数据表中的人名是有重复的,所以不能简单按行堆叠。
实际上,这是将所有信息都合并到一起,即做全连接。又因为是多表依次做连接,再结合 reduce() 就能实现。
files = list.files("datas/", pattern = "xlsx", full.names = TRUE) df = map(files, read_xlsx) %>% reduce(full_join, by = "人名") # 读入并依次做全连接 df
2. 数据在一个工作簿的多个工作表(1个xlsx文件,包含多个sheet)
还是上述数据,只是都在 “3-5月业绩.xlsx ”中:
path = "exercise/3-5月业绩.xlsx" df <- map(excel_sheets(path), ~ read_xlsx(path, sheet = .)) %>% reduce(full_join, by = "人名") # 读入并依次做全连接
结果同上。
————————————
原创作品,转载请注明。
-
matlab 读取excel为字符_python:批量读取同一类型excel表格,合并为一张表
2021-02-03 07:21:38样本量必须要有一定的规模才能得到相对可靠的分析结论,对于成百上千张excel表格如何快速将所有的数据汇总到一张表上呢?另外excel表的格式可能是xlsx,也可能是xlsx,甚至可能是csv格式,如下图所示。不过不用担心... -
matlab 批量读取execl(csv)文件
2017-02-26 18:58:21一直没时间整理自己写的垃圾代码,如今代码乱的一团糟,今天把matlab读取excel文件拿出来;需要根据数据格式稍作修改就可以用; 读取核心的语句莫过这两句:dir(); csvread(); 文件下载: %read csvdata %author:... -
matlab批量读取csv文件_批量转化xlsx文件为csv格式
2020-11-27 02:54:26写在前面python对于文件流工作做的比R包,这是我目前的感受,今天给大家贡献一个小函数,这是赵向阳师弟编写的,我们在处理xlsx...实战import pandas as pdimport osimport xlrd#---批量转换excel为csv---def exc... -
matlab批量处理excel数据,绘图并保存
2019-10-02 08:58:182. 循环读取文件名,放入元胞数组 3. 按文件名循环处理数据,每个文件处理流程如下 3.1 根据数据标识去除无效数据 3.2 读取待处理数据,存入二维数组 3.3 数据运算,绘图 3.4 新建文件夹dat_image,以文... -
用matlab读取excel文件
2018-08-19 15:38:11这些表格数量较多,所以通过matlab进行批量读取和处理。 在读取过程最重要的函数是xlsread函数,使用该函数可以方便的读取excel文件的数值、文本等, num = xlsread(filename,sheet,xlRange) 通过这条函数可以... -
c fscanf 按行读取文件_【R语言】批量读取Excel数据并合并(升级版)
2020-11-28 12:02:10我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:张敬信:【Matlab/R语言】批量读入Excel文件zhuanlan.zhihu.com近年来,R语言技术突飞猛进,再来一篇更简洁高级的。批量读取并合并,道理很简单,总共分... -
python与r语言处理excel数据_【R语言】批量读取Excel数据并合并(升级版)
2020-12-29 05:07:33我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:张敬信:【Matlab/R语言】批量读入Excel文件zhuanlan.zhihu.com近年来,R语言技术突飞猛进,再来一篇更简洁高级的。批量读取并合并,道理很简单,总共分... -
MATLAB怎么批量(循环)读取Excel文件、以及将数据保存为.xlsx
2020-09-15 15:48:56有时候我们需要对某个文件夹或者多个文件夹中的Excel...对文件地址下的excel进行批量读取方法为: excel_path= 'E:\Study of Lab\Coding\Experience DatePhoto\Excel\'; %文件夹路径 img_path_list = dir(strcat(ex -
matlab基础-批量读取有规律命名的excel文件
2020-07-03 16:32:06for i = 1:255 if i<100 filename = strcat('0',num2str(i),'.xls'); else filename = strcat(num2str(i),'.xls'); end a1(:,1)=xlsread(filename,'sheet1','D22:D30');... a1(:,2)=xlsread(filename,'sheet2'... -
Matlab程序设计:批量读取文件(Image, excel, txt .etc)
2015-08-11 14:15:40涉及命令:dir, ls; GUI中借助getfile 待总结…… -
Matlab循环读取txt文件并对其中数据进行计算最后导出为excel
2019-10-21 21:45:491、matlab批量导入txt文件 2、将txt文件中的英文去除 3、逐行将矩阵输出为excel -
matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿)
2019-04-25 16:24:17读取Excel内的多工作簿,这里不在啰嗦,使用xlsfinfo配合xlsread即可。 但是如果一个excel文件内工作簿的数量太多,就需要借助eval了。 eval是一个函数,可以把括号里的字符串解释成命令直接运行。在循环中我们没有... -
Matlab 批量读入txt,处理数据后写入excel指定列
2020-12-04 14:29:481.打开名为data的文件夹,读取所有txt文件 2.计算txt文件个数(len) 3.循环读取,load用于打开txt,处理数据得到b,c,d 4.读取test.xlsx的行数,列数,判断其是否为空 5.逐行写入,其中tmpRaw为当前行数 6.... -
MATLAB批量创建文件夹
2019-10-13 20:19:07使用matlab批量创建文件夹。 文件名称已经在excel中生成,读取表格内容(cell结构),当做文件夹名称。 代码如下: %% 根据excel创建文件夹 [~,~,file_name] = xlsread('C:\Users\lenovo\Desktop\FILE_NAME.xlsx'); ... -
excel批量导入matlab
2019-03-28 14:37:00%读取该路径所有xls文件dirnum=length(dirs);%计算文件夹里xls文档的个数dircell=struct2cell(dirs)' ; % 结构体(struct)转换成元胞类型(cell),转置一下是让文件名按列排列。filenames=dircell(:,1); % 第一列是... -
GrADS数据转CSV小程序——Matlab、SPSS、Excel读取GrADS站点数据的终极解决方案
2019-04-06 15:02:52这是我写的一个Fortran+C语言小程序,可以批量地把GrADS的数据文件(.dat)转换为Matlab、Excel等别的软件方便读取的CSV文件。支持在Windows、macOS、Linux系统上运行。 这个小程序的名字叫做GrADSDataToCSV。名字... -
MATLAB批量操作文件夹(新建和重命名)
2020-11-10 17:00:47读取excel文件sheet1工作簿表格中的名称列表,在新建文件夹中批量创建文件夹。 name = readcell('E:\电脑文件\2编程matlab\数据处理程序\批量处理文件夹\name.xlsx','sheet','sheet1'); for i=1:length(name) ... -
matlab批量导出 矩阵到
2020-04-02 09:31:06对多个图片进行FFT处理后生成多个矩阵,想要把这些矩阵批量提取出来到excel作为例子我只生成了3个,应该是生成1000个矩阵。我最下边只是提取了一个,希望吧所有的A1到A1000都取出来,不知如何for循环一下。 ``` ... -
可以批量输出患者dicom计划到excel文件的matlab代码
2018-06-29 13:36:33可以一次批量读取多个患者放射治疗计划Dicom RTstructure,dose,plan文件并格式化输出DVH数据到excel的matlab代码;该代码文件内描述了需要输入的患者dicom文件的命名格式 -
matlab批量生成指定名称和格式的空白文件
2020-06-04 09:46:141.对于无规律的文件名,在excel表格第一列记录,如果是有规律的文件名,可以在matlab中用程序生成; 2.循环读取文件名,生成文件 代码实现: [name,d]= xlsread('mingzi.xlsx'); %读取存放有文件名的excel第二列... -
MATLAB【四】 ————批量适配图片信息与excel/txt等文档信息,批量移动拷贝图片,批量存图片中点和方框
2020-08-01 15:28:491、批量读取图片,批量读取文件 2、适配文件与excel、txt等文档信息 3、获取显示图片ROI、Point、rect、更改像素值 clear; clc; close all; %% crop the im into 256*256 num = 0; %% num=1 内缩3个像素 num =2... -
#Matlab# 调用 eeglab 包实现 批量 绘制 脑电 拓扑图
2020-01-02 17:18:03使用topoplot函数可以轻松实现在matlab的fgure中绘制脑电拓扑图,但对于大量数据,如果每次都手动调用topoplot绘制单张拓扑图片,将会消耗大量时间和经历,这里手写了一个matlab脚本读取存放在excel文件中的批量数据... -
分享一个基于matlab的批量处理表格的小程序(再也不用复制粘贴啦!)
2018-06-25 19:57:13Matlab 作为一个数据处理软件,内置了很多很强大的工具箱...由于matlab是可以读取及编辑电脑中的Excel文件的,这里分享一段批量处理Excel文件,汇总到一个文件中去的小程序:clcclearticpath = 'C:\Users\liusq\Des...