精华内容
下载资源
问答
  • Matlab读写文本数据

    千次阅读 2018-10-12 08:55:17
    matlab文件读取总结 matlab的文件读取函数功能可以读取各种文件类型,包括: textread(字母和数值每行格式一致) xlsread(读取excel文件) importdata(字母和数值分开,以数字为主,字母只存在前几行) load(纯数据)...

    matlab文件读取总结

    matlab的文件读取函数功能可以读取各种文件类型,包括:

    textread(字母和数值每行格式一致) 
    xlsread(读取excel文件) 
    importdata(字母和数值分开,以数字为主,字母只存在前几行) 
    load(纯数据) 
    dlmread(单一分隔符的纯数据或ASCII数据文件) 
    textscan(类似于textread,但使用前必须fopen打开文件) 
    csvread(类似于xlsread,读取.csv格式的文件) 
    
    

    textread读取

    %-- read
    fid=fopen('sbdart_aeronet_w.out','r');
    aerosol_w = textscan(fid, '%f', 'HeaderLines',1); % 跳过第一行
    fclose(fid);
    %-- 因为不是成行读取,所以读取后的数据需要重新调整为矩阵
    aerosol_w = cell2mat(aerosol_w);
    aerosol_w = reshape(aerosol_w, 9, [])';  %原始数据是M行*9

    fscan读取

    fileID = fopen('I:\filelist_2019-01-01-2019-12-31_filenames.txt');
    files = textscan(fileID,'%s');
    fclose(fileID);
    

    逐行读取字符串文本

    fid = fopen(filename);
    while ~feof(fid)
       str = fgetl(fid);
    end
    fclose(fid);
    
    

    逐行写入字符串文本

    fid = fopen('D:\test','wt');
    for j = 1:size(data,1)
        fprintf(fid,'%s\n',data{j});
    end
    fclose(fid);
    

    Matlab文件写文本

    写csv文件

    例子1和2通过table数据结构,并写入csv。关于表的具体使用可以看官网
    通过table数据结构,可以设置表头(每一列名)以及每一行名,当然也可以不设置。
    用法:

    T = table(var1,...,varN)
    T = table('Size',sz,'VariableTypes',varTypes)
    T = table(___,'VariableNames',varNames)
    T = table(___,'RowNames',rowNames)
    T = table
    

    例子1——writetable

    data = magic(5);
    result_table = table(data);
    %保存表格
    writetable(result_table, 'test.csv');
    

    例子2——writetable

    %需要保存的矩阵
    data = magic(5);
    T = table(data(:,1),data(:,2),data(:,3),'VariableNames',{'Value1','Value2','Value3'});
    writetable(T, 'test.csv');
    

    例子3——dlmwrite

    %需要保存的矩阵
    data = magic(5);
    % write header to file
    fid = fopen('test.csv','w'); 
    fprintf(fid,'%s\n',['Value1,Value2,Value3,Value4,Value5'])
    fclose(fid)
    % write data to end of file
    dlmwrite('test.csv',data,'-append');
    

    备注:如果制定每列标题的话,例子3可能更方便一些

    例子4——csvwrite
    这里如果要写入每一列的表头,仍然需要像列子3一样处理

    csvwrite(filename,M) 将矩阵 M 以逗号分隔值形式写入文件 filename。
    csvwrite(filename,M,row,col) 从指定的行和列偏移量开始将矩阵 M 写入文件 filename。行和列参数从 0 开始,因此 row=0 和 col=0 指定文件中的第一个值。
    

    例子5——printf

    % Create a csv file
    fid=fopen('test2.csv','a');
    BD1=1:size(data,1);% size(x,1)表示行数,size(x,2)表示列数
    if fid<0
    	errordlg('File creation failed','Error');
    end
    
    % 注意fprintf不支持元胞数组
    title={'NO','obj1','obj2'};
    % fprintf(fid,'%s,%s,%s\n',title(1),title(2),title(3)); % 这样写会保错
    fprintf(fid,'%s,%s,%s\n',cell2mat(title(1)),cell2mat(title(2)),cell2mat(title(3)));
    % 一共有51for i=1:size(data,1)
    	fprintf(fid,'%d,%d,%d\n',BD1(i),data(i,1),data(i,2));
    end
    fclose(fid);
    

    例子6——writematrix

    data = magic(5);
    writematrix(data,'test.csv')
    

    参考
    https://www.cnblogs.com/cloud-ken/p/12701082.html
    https://ww2.mathworks.cn/help/matlab/ref/writematrix.html#namevaluepairarguments
    https://ww2.mathworks.cn/help/matlab/ref/csvwrite.html

    展开全文
  • Matlab写文本txt换行

    千次阅读 2018-07-03 09:57:01
    matlab关于文本文件的操作函数基本都是继承C语言的,但存在一些细微的差别。1.txt换行的实现方法一:fid=fopen('filename.txt','w');fprintf(fid,'%d\r\n',a);fclose(fid);方法二:fid=fopen('filename.txt','wt')...
    matlab关于文本文件的操作函数基本都是继承C语言的,但存在一些细微的差别。
    1.写txt换行的实现
    方法一:
    fid=fopen('filename.txt','w');
    fprintf(fid,'%d\r\n',a);
    fclose(fid);

    方法二:
    fid=fopen('filename.txt','wt'); %加t表示以文本文件模式(text mode)打开
    fprintf(fid,'%d\n',a);
    fclose(fid);
    在window系统下想要在txt中看到有换行的效果得用wt输出
    说明,关于换行符还与操作系统有关!

    2. 在txt文本里接着写
    C语言里打开时的命令是 fid=fopen('filename.txt','aw');
    而在matlab里则是fid=fopen('filename.txt','a');
    展开全文
  • %矩阵向量乘,写入文件 %双重for循环处,运行了很久,还需要改进,请多关照 clear clc n=150000;%矩阵的维数 a = sprand(n, n, 0.0001);%产生一个稀疏矩阵 fid1 = fopen('matrix.mtx', 'w')...fprintf(fid1, '%

     

    展开全文
  • matlab文本文件的读写

    千次阅读 2019-08-13 15:21:46
    介绍Matlab读写文本文件的方法,包括load、dlmread、csvread、importdata、textscan、dlmwrite、csvwrite、save等函数的用法。 读文件 1. 纯数字 load test.txt % 导入文本数据,并保存在 test 变量; ...

    https://blog.csdn.net/u012366767/article/details/81565427

    介绍Matlab读写文本文件的方法,包括load、dlmread、csvread、importdata、textscan、dlmwrite、csvwrite、save等函数的用法。
    读文件
    1. 纯数字
    load test.txt % 导入文本数据,并保存在 test 变量;
     
    x= load('test.txt') % 导入文本数据,并保存到x变量;
    2. 科学计数法数字
    x = load('test.txt')
     
    x = dlmread('test.txt')
    3. 符号隔开的数字
    x= load('test.txt')     % 同一种符号隔开
     
    x = dlmread('test.txt')    % 同一种符号隔开
     
    x = csvread('test.txt')    % 多种符号隔开
    4. 包含头信息
    x = importdata('test.txt')
            x.data % 查看读取的数值型数据

            x.textdata % 查看读取的文本数据

            返回结构体变量、分隔符、头文件行数:

    [x, s, h] = importdata('examp02_07.txt');
            逗号作为分隔符,设置读取初始位置:

    x = dlmread('test.txt', ',', 2, 0)
            空格作为分隔符,头文件信息 2 行 :

    x = importdata('examp02_08.txt',' ',2)
     

    5. 文字数字文字数字混排
            

     

    fid = fopen('test.txt','r');    % 以只读方式打开
    line1 = fgets(fid);    % 读取文件的第1行
    line2 = fgets(fid);    % 读取文件的第2行
    % 从第3行开始读取数据,将读取的相同数据类型的连续元胞连接成一个元胞数组
    A = textscan(fid, '%f %f %f, 'CollectOutput', 1)
    line6 = fgets(fid);    % 读取文件的第6行
    line7 = fgets(fid);    % 读取文件的第7行
    B = textscan(fid, '%f %f %f', 'CollectOutput', 1)
    fclose(fid);
    fid = fopen('test.txt', 'r');
    C_data = textscan(fid, '%f%f%f', 'HeaderLines', 2);  % 从第3行开始读
    fclose(fid);
     

    6. 不整齐数字


    x = dlmread('test.txt')  % 用 0 补齐
    7. 复数
            

    x = dlmread('test.txt')
     
    fid = fopen('test.txt', 'r');    
    A = textscan(fid, '%f %*s %f %*s','delimiter',' ', 'CollectOutput', 1)
    fclose(fid);  
    8. 日期


    file_content= importdata('test.txt')    % 返回字符串元胞数组
    file_content= char(file_content)    % 将字符串元胞数组转为字符矩阵
    t = str2num(FileContent(:, 8:9))    % 提取字符矩阵的第8至9列,并转为数字
     
    fid = fopen('test.txt', 'r');   
    % 用'-,:'作分隔符
    A = textscan(fid, '%d %d %d %d %d %f %*s','delimiter','-,:','CollectOutput',1)
    fclose(fid);  
    9. 字符数字混排


    fid = fopen('test.txt');
    C = textscan(fid, '%s %s %f32 %d8 %u %f %f %s')    % 以指定格式读取文件中数据
    fclose(fid); 


    fid = fopen('test.txt', 'r');  
    A = textscan(fid, '%s %s %s %d %s %d %s %d %s', 'delimiter', ' ')
    fclose(fid); 
     
    fid = fopen('examp02_11.txt','r');  
    A = textscan(fid, '%*s %*s %*s %d %*s %d %*s %d %*s', 'delimiter', ' ','CollectOutput', 1)
    fclose(fid);
    写文件
    1. 写复数
    x = [1.455390 + 1.360686i, 8.692922 + 5.797046i; 3.509524 + 5.132495i, 4.018080 + 0.759667i];
    % 用逗号(',')作分隔符,用'\r\n'作换行符
    dlmwrite('test.txt', x, 'delimiter', ',', 'newline', 'pc')
     
    x = 10*rand(2, 6);
    fid = fopen('test.txt','wt');
    fprintf(fid,'%f+%fi, %f+%fi\n', x);
    fclose(fid);
    2. 写数字
    x = 10000*rand(3, 2);  
    fid = fopen('test.txt', 'wt');  
    fprintf(fid,'%f    %f    %f\n', x);  % 注意:文件里排布为2行3列,即行优先
    %fprintf(fid,'%e  %e  %e\n', x);
    fclose(fid);  
     
    空一行:dlmwrite('test.txt', x, '-append', 'roffset', 1, 'delimiter', ' ');
    分隔符:dlmwrite('test.txt', x, 'delimiter', '\t', 'precision', '%8.4f');
    分隔符:dlmwrite('test.csv', x, 'delimiter', ',', 'precision', '%8.4f', 'newline', 'pc');
    dlmwrite函数自动补零对齐;
     
    csvwrite('csvlist.dat', x);  % 逗号隔开 
     
    保存数据、间隔tabs宽度、追加数据:
    a=rand(5);
    save('a.txt','a','-ascii');  
    save('a.txt','a','-ascii','-tabs');  
    save('a.txt','a','-append','-ascii','-tabs');
    3. 随便写啥
    fid=fopen(Fid_FilePath,'wt');
    fprintf(fid,'%s\n',Fid_Header); % 写字符串
    fprintf(fid,'%10.4f  %10.4f  %10.4f  %10.4f\n', Data_Fid);  % 写数字
    fclose(fid);
    4. 追加续写
    w = 10*rand(1, 4); 
    x = 10*rand(1, 3);  
    y = 10*rand(1, 2);  
    z = 10*rand; 
    fid = fopen('test.txt', 'at');   
    fprintf(fid, '%-f    %-f    %-f    %-f\n', w);
    fprintf(fid, '%-f    %-f    %-f\n', x);
    fprintf(fid, '%-f    %-f\n', y);
    fprintf(fid, '%-f\n', z);
    fclose(fid);
    实例
        以下是待写入内容:

    Title = Peak File
    Num of Peaks = 2048
    Time(ms)   --   Amplitude--       Real  --     Imag
    0.0000  36061.1716 -31236.0000  18020.0000
    0.0500  36075.8757 -31327.0000  17891.0000
    0.1000  36169.9271 -31501.0000  17775.0000
    0.1500  36114.7887 -31541.0000  17591.0000
        代码如下:

    Title = 'Title = Peak File';
    Num = ['Num of Peaks =' num2str(length(Module))];
    Name = 'Time(ms)   --   Amplitude--       Real  --     Imag';
    [filename, pathname] = uiputfile('*.ddd');   % 随便一个后缀名
    FileName = [pathname, filename];
    dlmwrite(FileName, Title, 'delimiter', '')   % 不加 append 以覆盖同名文件
    dlmwrite(FileName, Num, '-append', 'delimiter', '')    % 追加续写
    dlmwrite(FileName, Name, '-append', 'delimiter', '')
    dlmwrite(FileName, [SampleTime, Module, DataReal, DataImaginary], '-append', 'delimiter', '\t', 'precision', '.4f')
     
     

    展开全文
  • 这就涉及到MATLAB文本文件的读取和存入操作。这里我们以一个例子来说明对文本文件读、存的操作。 图1 光谱文件结构 一般光谱仪得到的光谱文件结构如图1所示,共包含两列,第一列为波长数值(单位:nm),第二列为...
  • Matlab读写矩阵到文本文件

    千次阅读 2017-08-18 14:22:22
    问题描述:使用matlab,如何将数据一次从文本文件读出?如何将矩阵数据一次性写入文本文件?  批量读出文本中的数据常用的函数是importdata(),可以分别导入数据中的字符和数值数据,并可以跳过指定行等,import...
  • MATLAB文本文件读写

    2014-06-24 20:52:48
     将文件看作是由一个一个字节(byte) 组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。这就是两者的区别;...
  • matlab 读写txt文本文件的方法

    千次阅读 2011-02-20 16:48:00
    matlab示例语句: [filename, date, timestamp, direction, dayornight, weather, startframe, numframes, class] = textread('info.txt', ... '%s %s %s %s %s %s %s %s %s', -1);   ...
  • MATLAB传递数据给其他第三方软件或传递给另一个MATLAB的方式有很多种,最简单的方式即利用读写文本实现。本文介绍一种基于读写文本文件的MATLAB与其他应用程序之间消息传递方法。利用该方法,可以为MATLAB的运算信息...
  • find的例子 * Part IIverilog文件的读写 matlab和verilog文件的读写 Part Imatlab文件的读写 matlab读写文件的过程 * matlab 文件的打开和关闭 二进制文件.bin的读写 文本文件.txt的读写 读写的定位 *MAT文件的读写 ...
  • Matlab格式化文本写操作

    千次阅读 2017-10-04 15:14:25
    % 格式化文本文件操作 % fprintf fid = fopen(‘aa.txt’,’w’); fprintf(fid,’%s’,’hello world’); fclose(fid);%返回值是0表示关闭成功   fid = fopen(‘aa.txt’,’w’); fprintf(fid,’%c\r\n’,...
  • (1)打开文本文件 fid=fopen(“11.txt”,‘r’); (2)读文件 A=fscanf(fid,’%d’); 注: fscanf 这个函数可以读写格式化文件 语法syntax A=fscanf(fid,format) (3)g fclose(fid)
  • 在MBD(基于模型的设计)中涉及到...能通过记事本或者Notepad++这类编辑器打开,然后能看到里面的是啥的文件都是文本文件。文本文件在MBD中十分常见,包括:C代码、txt文件、批处理文件、Matlab脚本、dbc文件、编译器
  • matlab实现文本内容批量替换

    千次阅读 2020-04-03 15:14:26
    文章目录一、 目的二、 基本思想三、 代码实现四、 其他工作五、 补充 ...本文提到的实现文本内容批量替换是实现代码自动生成的一个步骤,实现了找到文本中指定的段落,并把该段落换成另外的内容。 二、 基本...
  • [转]MATLAB读取文本数据的方法

    万次阅读 多人点赞 2018-08-14 11:23:13
    近日工作需要处理大量感知结果数据,并以特定结构类型储存在txt文件中。需用MatLab对感知数据结果绘图并与Ground ...Matlab文本文件的读写函数可以分为两类,一类是高级函数(high-level),一类是底层函数(low-level)...
  • 在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友。 目录文本文件的读写fscanf函数和fprintf函数fmt由%加上格式符组成 文本文件的读写 fscanf函数和fprintf函数 fscanf函数用于读取...
  • Matlab 读写文件

    千次阅读 2017-09-11 22:32:51
    一、读取文本文件 思路: 1、用fopen来打开一个文件句柄 2、用fgetl来获得文件中的一行,如果文件已经结束,fgetl会返回-1 3、用fclose来关闭文件句柄 比如,read.txt的内容如下: 0.1 0.1 151.031 -12.3144 -29....
  • matlab写文件操作

    2019-06-16 14:25:28
    matlab写文件操作 在软件总提供了特有的写文件操作函数,fopen、fprintf、fclose %fopen 用法 语句 fid=fopen(‘a.txt’,‘r(w)’) 可以实现对文本文件的读写功能,进行写操作是,当文本文件不存在时,软件自动...
  • MATLAB 文件读写数据读取文件路径% 打开文件夹>> files = dir('Videos');% 获取文件名>> files(1).name文本数据读取这一步的前提是上一步进入到当前文件路径里读取数值文本⚠️在txt文本中%后的文字会被...
  • 此篇博客记录了用Matlab 读写各种文件的方法及示例,惊喜正在酝酿... 目前有文本文件(以txt为例),图片文件(png, jpg, tif, gif, bmp),nc,excle
  • Matlab学习手记】文件读写完整版

    万次阅读 多人点赞 2018-08-11 09:54:04
    介绍Matlab读写文本文件的方法,包括load、dlmread、csvread、importdata、textscan、dlmwrite、csvwrite、save等函数的用法。 读文件 1. 纯数字 load test.txt % 导入文本数据,并保存在 test 变量; x= ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 460
精华内容 184
关键字:

matlab写文本

matlab 订阅