精华内容
下载资源
问答
  • 在桌面创建一个名为《如何利用matlab循环读取文件夹中的文件》的文件夹,在再这个文件夹里面创建几个子文件夹,如下图所示; 第二步:在每个文件夹里面放好数据文件,我这里以.txt文件为列子。 具体的如下图所示...

    第一步:创建数据文件夹

    在桌面创建一个名为《如何利用matlab循环读取文件夹中的文件》的文件夹,在再这个文件夹里面创建几个子文件夹,如下图所示;

    第二步:在每个文件夹里面放好数据文件,我这里以.txt文件为列子。

    具体的如下图所示:

    对于上面的文件,为了能当输入文件的顺序时能读取文件中的数据,故编写了如下的代码:

    clc
    clear
    close all;
    %% 读取各个文件夹
    %———注意修改文件的路径,将《C:\Users\pgl\Desktop\如何利用matlab循环读取文件夹中的文件》修改为自己的文件夹————%
    filename1=ls('C:\Users\pgl\Desktop\如何利用matlab循环读取文件夹中的文件');%提取文件名,每次必须将文件名写入。
    cd('C:\Users\pgl\Desktop\如何利用matlab循环读取文件夹中的文件')%跳转到要处理的数据所在文件夹
    filename=cellstr(filename1);                       %把细胞数组转化为字符串
    filename(1:2)=[];                                  %删除filename中的...文件名,不知道哪里来的
    num=length(filename);                              %计算文件个数
    %% 读取其中一个文件夹中的文件
    fileth=1;       %计算第几个文件夹的数据,fileth最大能选择num
    %如果选择的文件数大于num,初始化为第一个
    if fileth>num
        fileth=1;
    end
    file_location=['C:\Users\pgl\Desktop\如何利用matlab循环读取文件夹中的文件','\',filename(fileth)];
    C=cell2mat(file_location);                 %细胞数组转化为字符串
    cd(C);                                           %跳转到第fileth个文件夹
    all_fileth_filename_char=ls(C);
    all_fileth_filename=cellstr(all_fileth_filename_char);                       %把细胞数组转化为字符串
    all_fileth_filename(1:2)=[];
    num_file=length(all_fileth_filename);%计算文件夹中文件的个数
    detail_file_name=1;                          %打算读取的文件序号
    %防止因为输入而产生的错误
    if detail_file_name>num_file
        detail_file_name=1;
    end
    file_char=all_fileth_filename{detail_file_name};%提取文件的字符
    data=load(file_char);                                       %读取文件数据
    
    

    方法二:如何快速读取文件夹里面的同一类型的文件

    clc
    clear
    close all
    location='如何利用matlab循环读取文件夹中的文件/';
    temp1 = dir([location,  '*.txt']);
    cd('如何利用matlab循环读取文件夹中的文件')
    N=length(temp1);
    for i=1:N
        data=load(temp1(i).name);
    end
    %  注意:将需要读取的文件夹放在和程序的同一文件夹内,

     

    展开全文
  • 1、matlab批量导入txt文件 2、将txt文件中的英文去除 3、逐行将矩阵输出为excel

    废话不多说,先上代码。

    clear;
    clc;
    
    for i = 1:30	%文件个数
        filename = ['test (' num2str(i) ')' '.txt'];	%文件名称
        delimiterIn = ' ';
        headerlinesIn = 12;		%文件中文字的行数
        AllData = importdata(filename,delimiterIn,headerlinesIn);		%获取文件
    
        DiseaseData = AllData.data(1:2025,4:129);	%纯数字矩阵
    
        MeanDiseaseData = mean(DiseaseData);		%进行平均值计算
    
        s=strcat('A',num2str(i))	%输出A1 A2 A3等,用于下面循环导出为excel
        
        xlswrite('testdata.xlsx',MeanDiseaseData,1,s);		%逐行写入excel
    end
    

    输入格式:顺序增加的文件名称,以便用来循环。
    在这里插入图片描述
    这里就涉及到怎样批量重命名文件了
    在这里插入图片描述
    对于上述文件,首先全选。
    在这里插入图片描述
    全选后按 F2 ,输入文件名如 test
    在这里插入图片描述
    在按下 CTRL + Enter ,效果如下图。
    在这里插入图片描述
    ok,至此输入文件名称格式已经好了。

    此时,如果我们输入的txt文件中既有英文,又有数字,如下图所示。
    在这里插入图片描述
    我们直接使用 textread 函数的话,是会报错的。
    在这里插入图片描述
    所以我们代码里使用:

        headerlinesIn = 12;		%文件中文字的行数
        AllData = importdata(filename,delimiterIn,headerlinesIn);		%获取文件
    

    这样就可以将txt文件中的非数字部分去除。

    至此,我们已经将txt文件中的数字转化为Matlab里的矩阵了,接下来进行一系列运算后,将其输出为excel。

    如果直接调用
    xlswrite(filename,A)
    的话,每次循环产生的新数组A,都会将之前的写入excel的数组覆盖,不管循环多少次,最终指挥获得一个数组。

    那么,我们想每一次循环导出到excel的数组都放到上一次数组的下面。

    这时我们需要先了解一下下面这个函数:
    xlswrite(filename,A,sheet,xlRange)
    %writes to the specified worksheet and range.

    比如 xlswrite(test,A,1,A1)
    意思就是将A这个矩阵放到名为test的excel文件中,具体放的位置为sheet1,矩阵左上角为A1
    在这里插入图片描述

    那现在如果每次导入excel的矩阵为一行的话,只需要第一次循环为 xlswrite(test,A,1,A1),第二次为 xlswrite(test,A,1,A2) 就好。

    s=strcat('A',num2str(i))	%输出A1 A2 A3等,用于下面循环导出为excel
    xlswrite('testdata.xlsx',MeanDiseaseData,1,s);		%逐行写入excel
    

    程序里的这两行就实现了上述功能。

    总结

    到此我们就实现了
    1、matlab批量导入txt文件
    2、将txt文件中的英文去除
    3、逐行将矩阵输出为excel

    猜你喜欢:👇🏻
    【Matlab】怎么修改Excel单元格颜色?
    Matlab 实现对 Excel sheet 重命名 合并单元格
    【Matlab】一个超简单的生成顺序数组的方法

    在这里插入图片描述

    展开全文
  • % n 为数据文件个数 % 数据文件格式为: mat dat txt xls % data 为输入数据的结构体  % 取出任何一个来用的语句为 data{i} i表示第i次读入文件!(如果进行了顺序组合,最后只剩下data{1}!) % 例如...

     程序如下:

     

    %  n 为数据文件个数

    %  数据文件格式为: mat dat txt xls

    %  data 为输入数据的结构体 

    %  取出任何一个来用的语句为  data{i} i表示第i次读入文件!(如果进行了顺序组合,最后只剩下data{1}!)

    %  例如你要输出第3次的读入文件,并赋值给A  语句如下:(如果进行了顺序组合,最后只剩下data{1}!)

    %  A=data{3};(如果进行了顺序组合,最后只剩下data{1}!)

    clear

    n=input ('输入文件个数:n=');

    for i=1:n

        [filename,pathname]=uigetfile({'*.xls';'*.txt';'*.dat';'*.mat' },'导入数据');

        l= length(filename);

            if l<5

                errordlg ('wrong file','file open error !!!');

                 return;

            end

           filename1=strcat(pathname,filename);%合并绝对路径

           test=filename(1,l-3:l);

        switch test

             case '.mat'

                d=struct2cell(load(filename1));%绝对路径;取出文件夹中数据;

                a=d;

             case '.dat'

                d=(load(filename1));%绝对路径;取出文件夹中数据;

                a=d;

            case '.txt'

                d=(load(filename1));%绝对路径;取出文件夹中数据;

                a=d;

            

            case '.xls'

                file=fullfile(pathname,filename); 

                d=xlsread(file);

                a=d;

            otherwise

            errordlg ('wrong file','file open error !!!');

            return;

        end

       cd(pathname);   %保存绝对路径  

       data{i}=a;

    end


        disp('0 不做任何操作')

        disp('1 按照导入顺序组合(要求:文件列数相同)')

        sss=input('输入:0 or 1\n');

        switch sss

            case 0

                data1=data;

            case 1

                D=[];

                for i=1:n 

                    clear A

                    A=data{i}(:,:);

                    D=[D;A];

                end

                data1{1}=D;

            otherwise

                errordlg ('wrong Number/n REPEAT','The No. is error !');

                break

        end

        clear data filename filename1 a d sss i l n test A D file j

        data=data1;

        clear data1



    直接转成m文件运行就能读取,程序最后路径为数据所在的路径。

    从第一个%复制

    使用方法:

    在保存为wt.m文件,完成后生成wt.m文件,在matlab里输入help wt有解释。。。

    展开全文
  • Matlab是学术界非常受欢迎的科学计算平台,matlab提供强大的数据计算以及仿真功能。在Matlab数据集通常保存为.mat格式。那么如果我们想要在Python中加载.mat数据应该怎么办呢?所以今天就给大家分享一个使用python...
    Matlab是学术界非常受欢迎的科学计算平台,matlab提供强大的数据计算以及仿真功能。在Matlab中数据集通常保存为.mat格式。那么如果我们想要在Python中加载.mat数据应该怎么办呢?所以今天就给大家分享一个使用python加载.mat数据的方法。我将使用Stanford Cars Dataset数据集作为例子为大家演示使用方法。数据集

    Stanford Cars Dataset数据集是一个关于车辆图像分类的数据集,该数据集保存格式为.mat形式。数据及下载地址为:

    https://ai.stanford.edu/~jkrause/cars/car_dataset.html

    加载.mat文件

    Scipy是一个非常流行的用于科学计算的python库,很自然地,它们有一种方法可以让你读入.mat文件。阅读它们绝对是一件容易的事。您可以在一行代码中完成它:

    from scipy.io import loadmat
    annots = loadmat('cars_train_annos.mat')

    格式化数据

    通过loadmat方法加载数据后会返回一个Python字典的数据结构,我们可以查看数据关键字,代码如下:

    annots.keys()
    > dict_keys(['__header__''__version__''__globals__''annotations'])

    下边是关于数据集描述的文档,从中我们可以查看关于数据及更详细的描述,也可以验证通过Python加载后数据是否正确。

    This file gives documentation for the cars 196 dataset.
    (http://ai.stanford.edu/~jkrause/cars/car_dataset.html)
     — — — — — — — — — — — — — — — — — — — — 
    Metadata/Annotations
     — — — — — — — — — — — — — — — — — — — — 
    Descriptions of the files are as follows:
    -cars_meta.mat:
     Contains a cell array of class namesone for each class.
    -cars_train_annos.mat:

     Contains the variable ‘annotations’, which is a struct array of length
     num_images and where each element has the fields:
     bbox_x1: Min x-value of the bounding box, in pixels
     bbox_x2: Max x-value of the bounding box, in pixels
     bbox_y1: Min y-value of the bounding box, in pixels
     bbox_y2: Max y-value of the bounding box, in pixels
     class: Integral id of the class the image belongs to.fname: Filename of the image within the folder of images.
    -cars_test_annos.mat:
     Same format as ‘cars_train_annos.mat’, except the class is not provided.
     — — — — — — — — — — — — — — — — — — — — Submission file format
     — — — — — — — — — — — — — — — — — — — — Files for submission should be .txt files with the class prediction forimage M on line MNote that image M corresponds to the Mth annotation inthe provided annotation fileAn example of a file in this format istrain_perfect_preds.txtIncluded in the devkit are a script for evaluating training accuracy,eval_train.mUsage is:

    (in MATLAB)
    >> [accuracy, confusion_matrix] = eval_train(‘train_perfect_preds.txt’)
    If your training predictions work with this function then your testing
    predictions should be good to go for the evaluation server, assuming
    that they’re in the same format as your training predictions.

    从文档中可以看到,annotations变量中包含我们想要的结构数据,包括标签、图像文件名以及图像边界框信息,因此我们只需处理annotations变量并从中提取我们想要的信息。

    type(annots[‘annotations’]),annots[‘annotations’].shape
    >(numpy.ndarray, (18144))
    type(annots['annotations'][0][0]),annots['annotations'][0][0].shape
    >(numpy.void, ())

    从.mat中提取的数据以numpy.ndarray格式存储,此数组中的项的数据类型是numpy.void。

    annots[‘annotations’][0][0][‘bbox_x1’], annots[‘annotations’][0][0][‘fname’]
    > (array([[39]], dtype=uint8), array(['00001.jpg'], dtype='))

    接下来我们通过循环将字典中的annotations变量信息提取出来,并将它们存储在列表中:

    [item.flat[0for item in annots[‘annotations’][0][0]]
    > [3911656937514'00001.jpg']

    将数据转换成Pandas Dataframe

    现在我们用python加载好matlab数据文件,为方便后续的处理,我们将数据转换为pandas格式。转换过程十分简单,具体代码如下:

    data = [[row.flat[0for row in line] for line in annots[‘annotations’][0]]
    columns = [‘bbox_x1’, ‘bbox_y1’, ‘bbox_x2’, ‘bbox_y2’, ‘class’, ‘fname’]df_train = pd.DataFrame(data, columns=columns)

    转换后数据形式如下:

    2070baffcc3af27e67a25e07f37646be.png

    参考

    https://towardsdatascience.com/how-to-load-matlab-mat-files-in-python-1f200e1287b5

    热 门 推 荐用Python创建微信机器人用Python机器人监听微信群聊用Python获取摄像头并实时控制人脸开源项目 | 用Python美化LeetCode仓库推荐Python中文社区旗下的几个服务类公众号征稿启事 | Python中文社区有奖征文

    a8a66bd885b893c53f3ded470090e4b5.gif

    ▼ 点击成为社区注册会员          「在看」一下,一起PY!

    展开全文
  • matlab读取文件夹中数据

    千次阅读 2019-04-14 09:30:54
    matlab读取指定文件夹下,特定格式文件第一步读取文件代码输出说明第二步 建立for循环说明(strcat) 第一步读取文件 代码 Path = 'D:\DATA\'; % 设置路径,记得加上最后的反斜杠 File = dir(fullfile(Path...
  • 假设sol保存了366个字段 可使用循环创建字符串的方式套取字段中的内容: u_free = []; for i = 1:366 a = ['ufree',num2str(i)]; data = getfield (sol, a); u_free(i,1) = data; end
  • 运用MATLAB批量读取excel表格

    千次阅读 2020-05-25 23:53:44
    **运用MATLAB批量读取excel表格****需要待读取的excel表格****Step1:读取数据的路径,通过dir函数获取特定地址文件夹中的文件列表。****Step2:循环读取每一个文件的数据,并将其存到一个根据循环命名的与原始数据...
  • MATLAB中批量读取处理数据文件

    万次阅读 2016-10-13 14:47:47
    对于很多新手来说,怎么读取数据就是一个比较棘手的问题,尤其是那些完全没有命名规律的文件,人工一个个的读吧费事费力又枯燥,写个循环自动读吧文件命名又没有规律。本文就是专门解决这个问题的。 解决方法:写...
  • 有时候我们需要对某个文件夹或者多个文件夹中的Excel文件进行读取,然后处理。那么怎么实现呢? 以一个文件夹下的Excel文件进行读取为例。 文件地址:E:\Study of Lab\Coding\Experience DatePhoto\Excel 对文件...
  • 以我的为例,想要在matlab循环读取这些图片,进行处理,则可以 1.读取name.txt中所有字符串,共有400行,存成cell [name]=textread('name.txt','%s',400); 2.循环取出 。name:400*1 cell for i=1:400 str_name=...
  • matlab读取多个文件

    2019-07-27 06:45:25
    在一个matlab的学习群里,有人提出了这么一个问题:在matlab里如何读取多信文件的数据,例如,有许多数据,存放在不同的txt文件里。 我的办法是把这些文件的文件名按一定的规律命名,假如有一百个数据文件,则可以...
  • MATLAB数据读取的几个方法

    千次阅读 2018-11-18 21:24:58
    首先是使用cd 更改当前目录路径,然后用dir读取当前目录下所有与之匹配的(*.mpg)的格式文件,这时回返一个所读取的所有文件的信息的结构数组。video_files(the n_th).name 表示当前第第n个文件的文件名,然后for ...
  • matlab批量读取文件的两种方法

    千次阅读 2016-09-25 12:03:50
    matlab批量读取文件的两种方法  (2012-05-06 19:57:27) ...循环读取文件;针对文件名字有序 for i=1:4  str= strcat ('F:\数据\tek', int2str(i) , '.xls') ; % 连接字符串形成图像的文件名  a{i}=x
  • 在一个matlab的学习群里,有人提出了这么一个问题:在matlab里如何读取多信文件的数据,例如,有许多数据,存放在不同的txt文件里。 我的办法是把这些文件的文件名按一定的规律命名,假如有一百个数据文件,则可以...
  • matlab遍历矩阵(读取矩阵每一个数据

    万次阅读 多人点赞 2019-04-14 10:38:22
    matlab遍历矩阵(读取矩阵每一个数据)描述代码输出 描述 matlab遍历矩阵(读取矩阵每一个数据) 思想在于建立for循环嵌套 代码 A = randn(3,4) % 创建3行4列随机矩阵 [r,c] = size(A) % 读取行r、列c for i ...
  • MATLAB读取多幅图像

    千次阅读 2013-11-01 22:35:37
    循环读取图片第一种方法①List =dir('*.jpg'); %如需其它图片格式支持,可以自己【重载dir()】函数,实现查找所有图片文件的功能, %如果图片是其它路径,可以用 ["路径" ".扩展名"] 字符串来实现。 k =length...
  • MATLAB读取多个文件

    千次阅读 2014-09-27 09:13:16
    在一个matlab的学习群里,有人提出了这么一个问题:在matlab里如何读取多信文件的数据,例如,有许多数据,存放在不同的txt文件里。 我的办法是把这些文件的文件名按一定的规律命名,假如有一百个数据文件,则可以...
  • 这里通过循环来写读取文件函数。function ReadFile(MainPath,FileType,FileLayer)%%%%%%%%%%%%%%%MainPath为主路径,FileType为需要读取的文件类型,FileLayer为文件类型在哪一层文件下cd(MainPath);if(FileLay>=...
  • A = dir(fullfile('d:/datafile','*...这个语句是把存放数据文件的目录d:/datafile下的所有txt文件列出来,并把这些文件名的信息存放到一个变量A中,A是一个结构体变量,只要对A进行循环就可以读取到所有文件的数据了。
  • matlab读取多个文件

    万次阅读 2010-07-21 11:10:00
    在一个matlab的学习群里,有人提出了这么一个问题:在matlab里如何读取多信文件的数据,例如,有许多数据,存放在不同的txt文件里。 我的办法是把这些文件的文件名按一定的规律命名,假如有一百个数据...
  • matlab 连续读取多个文件

    万次阅读 2013-03-06 16:49:16
    把文件的文件名按一定的规律命名,假如:filename1.txt,filename2.txt,...,fielname100.txt,在读取的时候则可以使用循环: for i = 1:100 fileName = ['filename' num2str(i) '.txt']; x = load...
  • 这是我写的一个Fortran+C语言小程序,可以批量地把GrADS的数据文件(.dat)转换为Matlab、Excel等别的软件方便读取的CSV文件。...用Excel里面的VBA或者是Matlab写一个循环就可以读取到所有你想要的数据了。
  • a=load('Pose29_64x64.mat');...for i = 1:1 :3332 %数据循环 b = a.fea(i,:); %一行一行的读取 d = b/255; D = reshape(d,64,64); %图片大小为64*64 %imshow(D) sc=strcat('C:\Users\801\Desktop\555\',sp
  • Matlab依次读取多个.txt 文件与图片

    千次阅读 2016-10-21 21:11:08
    1. 面对多个 .txt 文件的依次读入,且文件名按一定的规律命名,如:filename1.txt,filename2.txt,... 。个人总结如下。 (1)首先是纯数字数据类型的文本(不掺杂字符类型)依次读入,...我们可以使用循环依次读入文
  • 主要使用了imread函数,for循环指令,即函数imread用于读取图片文件中的数据,for用于读取所有图片。可以在matlab的命令窗口中输入doc imread或者help imread即可获得该函数的帮助信息。 clear;clc [f,p]=...
  • matlab如何实现循环提取EXCEL一列数据

    万次阅读 2015-07-13 11:57:06
    for i=1:256 eval(['Xnoise' num2str(i) '=A(:,' num2str(i) ')']); end  save 通过以上代码先把EXCEL中的256列数据赋值给矩阵A 如果需要调用其中一列,用以下语言即可...由于MATLAB读取EXCEL文件时间较
  • close allclearclc[data,text,raw]=xlsread('中游WATERNET-...%读取excel数据文件[row1 col1]=find(cellfun(@(x) strcmp(x,'Soil_Moisture_4cm'),raw(:,2)));%查询含特定字符串的数据[row2 col2]=find(cellfun(@(x) ...
  • matlab 串口实时接收数据 绘图

    万次阅读 2018-05-25 21:02:33
    利用matlab进行串口接收数据,并实时绘制曲线clear ...set(s,'BaudRate',115200,'StopBits',1,'Parity','none');...for i = 1:300 %循环读取 out=fread(s,26,'uint8');%读取 数据个数 与 类型 plot...
  • clc clear; Path = ‘F:\李聪\09 港珠澳数据\最新数据\DMP’; F=dir(Path); %显示文件下所有文件 F1=F(3:end,:);...for i=1:Length_F2 %第一个循环是获取文件夹下的文件夹 F3=strcat(Path,F2(i),’’);
  • 最近有知乎网友问我如何利用Matlab筛选Excel数据并绘制图线,在了解其需求后,我给一点参考意见,当时并没有完整的解决方案,今天上午尝试了几轮后,找到了一个方案。需求:如上图的表格示例,需要根据第1列name中...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

matlab循环读取数据

matlab 订阅