MATLAB 读写文本

来自:    更新日期:早些时候
MATLAB 读取文本文件~

fid=fopen('文件名',a+); %表示可读可写可添加
[A,count]=fscanf(fid,format,size); %A为存放读取数据,count为拂去数据个数,size可为N:读取N个数据到一个列向量,这里N可是30嘛。inf:读取整个文件。[m,n]读取m*n个数据到m*n矩阵中。format的话举个例子就是%12d
count=fprintf(fid,format,输出变量列表); %文件的写入count为写入个数;format同上,fid是默认的,必须填的;输出变量列表就是你要输入的;
fclose(fid);%这样就结束了

方法一:
A=importdata(file,space,line)
其中,file是所读取的文件名,space是特定的分隔符,line是一个数字,指文本中字符串文字的行数,如上文的数据中line=4。
此代码的含义是,line行是title,line+1行到end是数据,按特定分隔符space读取数据。此方法可以读取文本在上和数据在下的文件。
A是一个sturct,其中A.data就是所需的数据了。
exapmle:
A=importdata('test.txt',' ',4);%运行即可取得数据A.data

此方法也可以按以下操作获取:
在文件菜单中选择 file/import data,按照提示进行操作至结束。
在 command 窗口中输入
>> whos
Name Size Bytes Class

data 5x4 160 double array
textdata 4x1 300 cell array

Grand total is 54 elements using 460 bytes

>> data

data =

1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555

>> textdata

textdata =

'你好'
'欢迎来到'
'百思论坛'
'www.baisi.net'

方法二:

[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%d,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

a1 =

'1'
'2'
'3'
'4'
'5'


a2 =

'11'
'22'
'33'
'44'
'55'


a3 =

'111'
'222'
'333'
'444'
'555'


a4 =

'1111'
'2222'
'3333'
'4444'
'5555'
因以字符串的形式读入,所以有''。

文件内容形式二(假定文件名为test2.txt):

你好
1 11 111 1111
欢迎来到
2 22 222 2222
百思论坛
3 33 333 3333
www.baisi.net
4 44 444 4444
5 55 555 5555

说明:这种内容格式的文件用上面的方法是不行的。

方法三:
以下是由chinamaker编写的一种方法,但是需要重新建一个文本。
fidin=fopen('test2.txt'); % 打开test2.txt文件
fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值
fprintf(fidout,'%s

',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txt
continue % 如果是非数字继续下一次循环
end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
>> MK

MK =

1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555

你的CG=200是一个标量,取length(CG)得到的是1。

循环体里面只用到变量P,作为循环控制变量的范围最好写成和P相关,例如:
for i=1:size(P,2)
for j=1:size(P,1)
.....

j 没有复位吧.

fid=fopen(' xyz.txt','w');
for i=1:length(DTT)
for j=1:length(CG)
ZP=P(j,i)./1000000;
fprintf(fid,'%s','');
fprintf(fid,'%20f\n',ZP);
end
j=1;
end
status=fclose(fid);

CG=201


MATLAB 读写文本视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网