matlab中数据输出格式符_将以matlab格式输出的数据另存为txt或dat格式

将以matlab格式输出的数据另存为txt或dat格式

总结主要的论坛,主要有以下三种方法.

第一种方法: 保存(最简单,最基本的方法)

具体命令是: 使用save * .txt -ascii x

x是一个变量

*. txt是文件名,该文件存储在当前工作目录中,然后在打开后可以将其打开,数据可以以指数形式保存.

示例:

a = [17 24 1 8 15; 23 5 7 14 16; 4 6 13 20 22; 10 12 19 21 3; 11 18 25 2 9];

保存afile.txt -ascii a

打开afile.txt后,它看起来像这样:

1.7000000e + 001 2.4000000e + 001 1.0000000e + 000 8.0000000e + 000 1.5000000e + 001

2.3000000e + 001 5.0000000e + 000 7.0000000e + 000 1.4000000e + 001 1.6000000e + 001

4.0000000e + 000 6.0000000e + 000 1.3000000e + 001 2.0000000e + 001 2.2000000e + 001

1.0000000e + 001 1.2000000e + 001 1.9000000e + 001 2.1000000e + 001 3.0000000e + 000

1.1000000e + 001 1.8000000e + 001 2.5000000e + 001 2.0000000e + 000 9.0000000e + 000

第二种方法: dlmwrite

dlmwrite('a.txt',a,'precision','. 0f')

或dlmwrite('a.txt',a,'定界符','\ t')

对于只有一行或一列的数据,它非常适用,但是对于多行,则是混乱的

互联网上有很多类似的问题,但都不是理想的

第三种方法: fopen + fprintf

下面主要介绍此方法,可以解决上述问题: 使用fprintf命令: 以上面的示例为例:

第一种情况:

>> a = [17 24 1 8 15; 23 5 7 14 16; 4 6 13 20 22; 10 12 19 21 3; 11 1825 2 9];

>> fid = fopen('b.txt','wt');

fprintf(fid,'%g \ n',a);#\ n换行符

fclose(fid);

然后使用写字板打开b.txt,其内容如下: 列向量

17

23

4

10

11

24

5

6

12

18

1

7

13

19

25

8

14

20

21

2

15

16

22

3

9

第二种情况:

对上述命令进行以下更改: #\ n换行符更改为\ t,表键

>> fid = fopen('b.txt','w');

fprintf(fid,'%g \ t',a);

fclose(fid);

然后用写字板打开b.txt,内容如下: 行向量:

17234101124561218171319258142021215162239

第三种情况:

结合以上两个结果,我们编写以下命令:

fid = fopen('b.txt','wt');%写入文件路径

[m,n] = size(a);

对于i = 1: 1: m

对于j = 1: 1: n

如果j == n

fprintf(fid,'%g \ n',a(i,j));

其他

fprintf(fid,'%g \ t',a(i,j));

结束

结束

结束

fclose(fid);

然后使用写字板打开包含以下内容的b.txt: 矩阵

17241815

23571416

46132022

101219213

11182529

注意: 以上操作均在当前工作目录中完成!下面给出了最通用的模型,您可以自己尝试,如果需要dat格式dat是什么数据格式文件,可以直接将txt更改为dat

fid = fopen('C: \ Documents and Settings \ cleantotal.ped','wt');%写入文件路径

matrix = input_mattrix%input_matrix是要输出的矩阵

[m,n] = size(matrix);

对于i = 1: 1: m

对于j = 1: 1: n

如果j == n

fprintf(fid,'%g \ n',matrix(i,j));

其他

fprintf(fid,'%g \ t',matrix(i,j));

结束

结束

结束

fclose(fid);

×××××××××××××××××××××××××××××××××××××××××××××××××××××× ××××××××××××××

以下是对matlab的特定fopen和fprintf函数的具体说明. 当然,只是为了大家的方便,可以通过帮助来了解它

在matlab中的指定文件中打开的fopen函数的示例如下:

* 1)“ fopen”打开文件并分配文件代码.

语法1: FID = FOPEN(文件名,权限)

以指定的方式打开文件

FID = + N(N为正整数): 表示文件打开成功,文件代码为N.

FID = -1: 表示文件未成功打开.

在此文件关闭之前,FID始终有效.

如果通过阅读打开dat是什么数据格式文件,matlab首先搜索工作目录,然后搜索matlab的其他目录,“ permission”是打开模式参数.

打开模式参数由以下字符串确定:

r读出

w写(如果文件不存在,它将自动创建)

后续写入(如果文件不存在,它将自动创建)

r +读写(文件应该已经存在)

w +刷新写入,(如果文件不存在,它将自动创建)

a +随后写入(如果文件不存在,它将自动创建)

w重写,但不会自动刷新

后续写作,但不会自动刷新

文件存储格式: 打开文件的默认方式是: 二进制. 以文本模式打开,您可以在模式下引用它

在“权限”中添加“ t”个文件,例如“ rt”,“ wt +”

在matlab中fprintf函数的具体用法示例如下:

fprintf函数可以将数据以指定格式写入文本文件. 调用格式为:

格式化的数据输出: fprintf(fid,格式,变量)

以指定格式将变量的值输出到屏幕或指定文件中

fid是文件句柄,如果是默认值,它将被输出到屏幕上

1用于标准输出(屏幕)或2用于标准错误. 如果省略FID,则输出进入屏幕.

format用于指定用于数据输出的格式

%d个整数

%e实数: 科学的计算方法表

%f实数: 十进制形式

%g由系统自动选择以上两种格式之一

%s输出字符串

fprintf(fid,格式,A)

注意: fid是文件句柄,它指定要写入数据的文件,format是用于控制写入数据格式的格式字符,与fscanf函数相同,A是用于存储数据的矩阵

示例6.9创建一个字符矩阵并将其保存到磁盘,然后读取并将其分配给另一个矩阵.

>> a ='字符串';

>> fid = fopen('d: \ char1.txt','w');

>> fprintf(fid,'%s',a);

>> fclose(fid);

>> fid1 = fopen('d: \ char1.txt','rt');

>> fid1 = fopen('d: \ char1.txt','rt');

>> b = fscanf(fid1,'%s')

b =

字符串

matlab读取txt文件

fid = fopen('fx.txt','r');

%获取文件号

[f,count] = fscanf(fid,'%f%f',[12,90]);

%将文件编号1的数据读入f. 其中f是[12 90]的矩阵

%这里的'%f%f'表示正在读取数据的情况,他根据原始数据类型进行读取

fclose(fid);

%关闭文件

其他txt文件也可以加载打开

声明是

f = load('fx.txt)

字符串操作函数

1. eval函数可用于执行以字符串表示的表达式

2. 函数deblank可以删除字符串末尾的所有空格

3. findstr函数可用于在长字符串中查找短字符串并返回相应位置

4. 函数isstr可用于确定变量是否为字符串

5. 函数isletter可用于确定字符串中的每个元素是否为字母

6. 函数isspace可用于确定字符串元素是否为空格字符

7. 函数lower和upper可以将字符串中的字母转换为小写和大写格式

8. 功能strcat可以在水平方向上顺序连接多个字符串

9. strvcat函数可以在垂直方向上连接多个字符串

10. 函数strcmp可用于比较字符串,返回1或0

11. 通过忽略英文字母的大小写,可以使用strcmpi函数比较字符串

12. 函数strncmp可用于比较字符串的前N个字符是否相同

13. 该功能可用于调整字符串矩阵的对齐方式

14. 函数strmatch可用于查找与目标字符串匹配的行

15. strrep函数可以实现字符串的查找和替换功能

16. 函数strtok可以在字符串的第一个空格字符之前找到字符串

17. texlabel函数可以将字符串转换为tex软件的格式

18. bin2hex,bin2dec(“字符串”)之间的不同基数之间的转换; dec2hex(数字)=字符串;也就是说,十进制数不是字符串,其他基数是字符串

19. bitget函数可用于获取二进制数字C = bitget(A,位),A是无符号整数数据

20. 功能位集可用于设置二进制数字的值C =位集(A,位)指定数字的值取反

C =位集(A,位,V)将指定数字的值替换为V

21. bitand,bitor和bitxor函数可用于执行“ AND”,“ OR”,“或”数字操作

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/shumachanpin/article-261468-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值