关于matlab向文件写入数据的方法——留着备用
MATLAB数据采集的时候,往往需要把得到的数据保存下来。
fid = fopen(文件名,‘打开方式’);
说明:fid用于存储文件句柄值,如果fid>0,这说明文件打开成功。打开方式有如下选择:
‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
一、如果只是单纯的一个变量,可以像下面这样写。g2ggg是文件命名,txt文件(当然可以改成其他文件格式),这个是matlab自动保存在工作文件下的,baocun是我们要保存的变量。%d代表整数,、\r\n 代表每写入一次数据换行。
fid = fopen('g2ggg.xls','a');
fprintf(fid,'%d \t ',baocun);
fprintf(fid,'\r\n'); % 换行
fclose(fid);
其中:
fid = fopen('g2ggg.xls','a');
这句里面的‘a’代表后续写入。这样每次重新运行程序都不会替换之前保存的数据,还是保存在之前保存过的文件夹里面,接着之前的数据继续保存。
但是如果这个地方是‘w’,则代表写入,它写一次数据都会覆盖之前的数据,最后你会发现txt文件里面只保存了一个数据。除非你在程序中定义一个矩阵,把这些数据每次存在矩阵里面,到最后一次性保存这个矩阵,这些数据才会全部保存下来,但是切记你这次保存前的那个txt文件夹会被这次这个文件夹替换,除非你这次文件夹命名和上次不同。
二、如果是保存矩阵,可像下面这样写。save_data是文件命名,txt文件,这个是matlab自动保存在工作文件下的,baocun是我们要保存的矩阵。%d代表整数,、\r\n 代表每写入一次数据换行。
fid = fopen('save_data.txt','a');
[r,c]=size(baocun);
for i=1:r
for j=1:c
fprintf(fid,'%5f\t',baocun(i,j));
end
fprintf(fid,'\r\n');
end
fclose(fid);
其中 :
fid = fopen('save_data.txt','a');
这句里面的‘a’代表后续写入。这样每次重新运行程序都不会替换之前保存的数据,还是保存在之前保存过的文件夹里面,接着之前的数据继续保存。
但是如果这个地方是‘w’,则代表写入,它每写一次数据都会覆盖之前的数据,最后你会发现txt文件里面只保存了一个数据。除非你在程序中定义一个矩阵,把这些矩阵每次存在定义的这个矩阵里面,到最后一次性保存这个矩阵,这些数据才会全部保存下来,但是切记你这次保存前的那个txt文件夹会被这次这个文件夹替换,除非你这次文件夹命名和上次不同。
三、前面两种情况都是matlab自动保存的工作路径下的,如果我们需要matlab自动保存在指定路径下怎么办呢?可以像下面这样写:
fid = fopen('C:\Users\Desktop\g2ggg.txt','a');
fprintf(fid,'%d,%d,%d \r\n ',baocun);
其中
C:\Users\Desktop\
[FileName,PathName]=uiputfile({'*.txt','Txt Files(*.txt)';'*.xls','Excel(*.xls)';'*.*','All Files(*.*)'},'choose a File'); %% pathname获取保存数据路径, filename获取保存数据名称
if ~FileName
return;
else
str= [PathName,FileName];
fid = fopen(char(str), 'w'); % 要想存的文件名是自己输入的,这个地方就得这样写
fwrite(fid, '', 'integer*4');
[r,c]=size(baocun); % 得到矩阵的行数和列数
for i=:r
for j=:c
fprintf(fid,'%d\t',baocun(i,j));
end
fprintf(fid,'\r\n');
end
fclose(fid);
[FileName,PathName]=uiputfile({'*.txt','Txt Files(*.txt)';'*.xls','Excel(*.xls)';'*.*','All Files(*.*)'},'choose a File'); %% pathname获取保存数据路径, filename获取保存数据名称
if ~FileName
return;
else
str= [PathName,FileName];
fid = fopen(char(str), 'w');
baocun={'R','G','B','Xdata'};
这个是包含字符串的数组baocun,
fid = fopen('save_data.txt','a');
fwrite(fid, '', 'integer*4');
for n=:
fprintf(fid,'%s\t',char(baocun{n})); % \t表示空格
end
fprintf(fid,'\r\n'); %换行
fclose(fid);
很多东西都是举一反三,多动脑,多尝试,实在没办法就上网找答案,一般都能找到。
关于matlab向文件写入数据的方法——留着备用的更多相关文章
- C#打开或者创建一个文件,然后向其末尾写入数据的方法
原文:C#打开或者创建一个文件,然后向其末尾写入数据的方法 FileStream fs = new FileStream(@"d:\timetick.txt" ...
- 2、FileOutputStream--->文件输出流(向文件写入数据)
Api介绍 定义 FileOutputStream 用于写入诸如图像数据之类的原始字节的流.要写入字符流,请考虑使用 FileWriter. 构造方法 FileOutputStream(File fi ...
- java向Excel文件写入数据
/*使用之前要记得导入第三的jar包这个是我之前使用的时候那别人的东西自己修改了一下 还没来得及好好地封装一下还望见谅,注释我感觉写的挺清楚的就在不进行解释代码了*/package com.zzp.E ...
- PHP文件操作 之往一个文件写入数据
//打开一个文件 $f = fopen($filename,'wb'); $filename:打开一个文件,不存在则自动创建,如果不能创建,说明指定的文件目录有错误 wb:写入的方式 ---- 覆盖原 ...
- fwrite文件写入数据
文件的操作就两种:读和写 读:把文件中的内容读入到程序中,然后根据自己的项目需求把文件的数据进行相关的处理. 写:就是将程序中的数据,写入到文件中,去更新文件. 这么两种操作归到代码中就是这两种函数: ...
- Python向excel中写入数据的方法 方法简单
最近做了一项工作需要把处理的数据写入到Excel表格中进行保存,所以在此就简单介绍使用Python如何把数据保存到excel表格中. 数据导入之前需要安装 xlwt依赖包,安装的方法就很简单,直接 p ...
- java 读取Excel文件并数据持久化方法Demo
import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util ...
- php逐行读取txt文件写入数组的方法
使用说明: 采用fopen 方法,逐行读取数据,并使用feof($fp) 判断是否文件截止,最后通过filter() 方法,去除空白行,得到所需数据 $file = fopen("user ...
- C# 各种导入 Excel 文件的数据的方法总结
在导入之前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码. protected void btnImport_Click(object sende ...
随机推荐
- #001 如何组织JS代码
如何组织JS代码 有没有这样的经历,在编写代码的时候,因为功能简单,写的时候比较随意,所有的JS代码都放在一个文件里面,但是随着功能的增加,发现代码很乱,不好维护. 简单的整理了一下,目前对已有项目的 ...
- 洛谷 P4012 深海机器人问题【费用流】
题目链接:https://www.luogu.org/problemnew/show/P4012 洛谷 P4012 深海机器人问题 输入输出样例 输入样例#1: 1 1 2 2 1 2 3 4 5 6 ...
- tomcat 开启远程debug
修改 tomcat 目录下 /bin/catelina.sh # execution immediately after startup. Default is ...
- ubuntu16.04安装visual-studio-code
微软主页的安装说明,https://code.visualstudio.com/docs/setup/linux 有一点英语基础就能看懂,写的很好,一切以官方文档为主 方法一:可以使用umake ...
- JSF标签之f:facet 的用法
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zkn_CS_DN_2013/article/details/33717091 f:facet标签用来 ...
- Spring Boot中使用Redis小结
Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, 等. Redis简单介绍 Redi ...
- Docker实战(九)之数据库应用
目前,主流数据库包括关系型和非关系型两种. 关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念金额方法来处理数据库中的数据,支持复杂的事务处理和结构化查询.代表实现有MySQL .O ...
- Plugin with id 'com.novoda.bintray-release' not found的解决方法
我们一般在在github上下载下来的代码,有时候会提示Plugin with id ‘com.novoda.bintray-release’ not found的错误,这个怎么解决呢,其实很简单,只要 ...
- C语言偏冷知识点汇总
1.C语言函数声明中参数类型写在右括号后是什么意思?如下代码所示: int add(a, b) int a; int b; { return a + b; } 像这样的声明是什么意思,我测试过在gcc ...
- 单链表(c语言实现)贼详细
直接上代码吧 #include<stdio.h> #include<malloc.h> /* 单链表特点: 它是一种动态的储存结构,链表中每个节点占用的储存空间不是预先分配的, ...