精华内容
下载资源
问答
  • 运用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
    
    

    代码仅供参考,希望能帮助到大家!!

    展开全文
  • 一个文件夹有三百多多个.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格式文件,这个文件整合了所有的数据,有七千多万行…
    C4mat文件

    展开全文
  • 使用Matlab编写的小程序,用于批量读取Excel内容。本程序中用于读取特定字符的内容,可自行根据需要更改
  • %% 批量处理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:\实验调研\测试数据')

    展开全文
  • 我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:张敬信:【Matlab/R语言】批量读入Excel文件​zhuanlan.zhihu.com近年来,R语言技术突飞猛进,再来一篇更简洁高级的。批量读取并合并,道理很简单,总共分...

    b79f1eaccdd184be9833d908dcb494f1.png

    我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:

    张敬信:【Matlab/R语言】批量读入Excel文件zhuanlan.zhihu.com
    d3fb5538a521a431c6c12f87d6ed4a39.png

    近年来,R语言技术突飞猛进,再来一篇更简洁高级的。

    批量读取并合并,道理很简单,总共分三步:

    (1) 获取批量数据文件的路径

    (2) 循环机制批量读取

    (3) 合并成一个数据文件

    强大的purrr包+管道,使得后两步可以同时做,或者一气呵成。

    载入R包:

    library(tidyverse)
    library(readxl)
    library(writexl)

    以xlsx文件为例,如果是xls文件,改用read_xls()函数即可,或者不区分,直接用read_excel()也行。

    将合并后的数据写出到 Excel :

    write_xlsx(df, "新工作簿.xlsx")          # 写出

    一. 多个数据表列名相同

    这是最常见的情形,读取+按行堆叠合并,即可得到总的数据表。再分两种情况讨论:

    1. 数据在多个工作簿(即多个xlsx文件)

    比如,在datas文件夹下有3个xlsx文件,每个文件的列名都是相同的:

    a73ec592a4643afbd2e9173901de516c.png

    439eeaf214bccf986a9fe895f9c570fe.png
    files = list.files("datas/", pattern = "xlsx", full.names = TRUE)
    df = map_dfr(files, read_xlsx)    # 批量读取+按行堆叠合并
     
    df

    13cdaee95f410895fc29d7ff8dba0b64.png

    注1:数据文件名可以随便,不需要规律命名。

    注2:数据文件甚至可以嵌套多层文件夹,只需要设置参数 recursive = TRUE.

    2. 数据在一个工作簿的多个工作表(1个xlsx文件,包含多个sheet)

    还是上述数据,只是都在 “1-3月提奖额.xlsx ”中:

    1a0ad2232769af2bc085ca2cb3997e3a.png
    path = "1-3月提奖额.xlsx"
    df <- map_dfr(excel_sheets(path), 
                  ~ read_xlsx(path, sheet = .x))  # 批量读取+按行堆叠合并         

    结果同上。

    注:同样,各个sheet可以随便起名,不需要规律命名。

    二. 多个数据表列名不同

    都是同样的批量读取,但合并时不能只是简单的按行堆叠,而是需要做数据连接(join),得到总的数据表。也分两种情况讨论:

    1. 数据在多个工作簿(即多个xlsx文件)

    比如,datas 文件夹下有3个xlsx文件:

    c49896fdea9b1e8b5249d93c2eb92ea7.png

    7d084d61f9fccafa878f01d99108a434.png

    a904269652228982aed6fc27d777bae6.png

    908e5033be8b6c538d82b308d297d80d.png

    注意,3个数据表中的人名是有重复的,所以不能简单按行堆叠。

    实际上,这是将所有信息都合并到一起,即做全连接。又因为是多表依次做连接,再结合 reduce() 就能实现。

    files = list.files("datas/", pattern = "xlsx", full.names = TRUE)
    
    df = map(files, read_xlsx) %>% 
      reduce(full_join, by = "人名")                  # 读入并依次做全连接
    
    df

    85d410069311b849d0d813eb251d7ba9.png

    2. 数据在一个工作簿的多个工作表(1个xlsx文件,包含多个sheet)

    还是上述数据,只是都在 “3-5月业绩.xlsx ”中:

    d7ef46cd9c2a7613da54904fb1e49bfe.png
    path = "exercise/3-5月业绩.xlsx"
    df <- map(excel_sheets(path), 
              ~ read_xlsx(path, sheet = .)) %>% 
      reduce(full_join, by = "人名")              # 读入并依次做全连接

    结果同上。

    ————————————

    原创作品,转载请注明。

    展开全文
  • 样本量必须要有一定的规模才能得到相对可靠的分析结论,对于成百上千张excel表格如何快速将所有的数据汇总到一张表上呢?另外excel表的格式可能是xlsx,也可能是xlsx,甚至可能是csv格式,如下图所示。不过不用担心...
  • matlab 批量读取execl(csv)文件

    万次阅读 2017-02-26 18:58:21
    一直没时间整理自己写的垃圾代码,如今代码乱的一团糟,今天把matlab读取excel文件拿出来;需要根据数据格式稍作修改就可以用; 读取核心的语句莫过这两句:dir(); csvread(); 文件下载: %read csvdata %author:...
  • 写在前面python对于文件流工作做的比R包,这是我目前的感受,今天给大家贡献一个小函数,这是赵向阳师弟编写的,我们在处理xlsx...实战import pandas as pdimport osimport xlrd#---批量转换excel为csv---def exc...
  • matlab批量处理excel数据,绘图并保存

    千次阅读 2019-10-02 08:58:18
    2. 循环读取文件名,放入元胞数组 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) 通过这条函数可以...
  • 我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:张敬信:【Matlab/R语言】批量读入Excel文件​zhuanlan.zhihu.com近年来,R语言技术突飞猛进,再来一篇更简洁高级的。批量读取并合并,道理很简单,总共分...
  • 我之前写过一篇批量读取Excel数据的,代码比较原始和啰嗦:张敬信:【Matlab/R语言】批量读入Excel文件​zhuanlan.zhihu.com近年来,R语言技术突飞猛进,再来一篇更简洁高级的。批量读取并合并,道理很简单,总共分...
  • 有时候我们需要对某个文件夹或者多个文件夹中的Excel...对文件地址下的excel进行批量读取方法为: excel_path= 'E:\Study of Lab\Coding\Experience DatePhoto\Excel\'; %文件夹路径 img_path_list = dir(strcat(ex
  • for 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'...
  • 涉及命令:dir, ls; GUI中借助getfile 待总结……
  • 1、matlab批量导入txt文件 2、将txt文件中的英文去除 3、逐行将矩阵输出为excel
  • 读取Excel内的多工作簿,这里不在啰嗦,使用xlsfinfo配合xlsread即可。 但是如果一个excel文件内工作簿的数量太多,就需要借助eval了。 eval是一个函数,可以把括号里的字符串解释成命令直接运行。在循环中我们没有...
  • 1.打开名为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); % 第一列是...
  • 这是我写的一个Fortran+C语言小程序,可以批量地把GrADS的数据文件(.dat)转换为MatlabExcel等别的软件方便读取的CSV文件。支持在Windows、macOS、Linux系统上运行。 这个小程序的名字叫做GrADSDataToCSV。名字...
  • 读取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 RTstructure,dose,plan文件并格式化输出DVH数据到excelmatlab代码;该代码文件内描述了需要输入的患者dicom文件的命名格式
  • 1.对于无规律的文件名,在excel表格第一列记录,如果是有规律的文件名,可以在matlab中用程序生成; 2.循环读取文件名,生成文件 代码实现: [name,d]= xlsread('mingzi.xlsx'); %读取存放有文件名的excel第二列...
  • 1、批量读取图片,批量读取文件 2、适配文件与excel、txt等文档信息 3、获取显示图片ROI、Point、rect、更改像素值 clear; clc; close all; %% crop the im into 256*256 num = 0; %% num=1 内缩3个像素 num =2...
  • 使用topoplot函数可以轻松实现在matlab的fgure中绘制脑电拓扑图,但对于大量数据,如果每次都手动调用topoplot绘制单张拓扑图片,将会消耗大量时间和经历,这里手写了一个matlab脚本读取存放在excel文件中的批量数据...
  • Matlab 作为一个数据处理软件,内置了很多很强大的工具箱...由于matlab是可以读取及编辑电脑中的Excel文件的,这里分享一段批量处理Excel文件,汇总到一个文件中去的小程序:clcclearticpath = 'C:\Users\liusq\Des...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

matlab批量读取excel

matlab 订阅