matlab怎么读取文本文件中的数据?

我的文本文件中有13列数据,现在需用第1、2列的数据进行傅里叶变换,程序是什么?高手请教!!!数据很大,一个文本文档有40多兆(13列,n行(差不多上千行,不好计数)),... 我的文本文件中有13列数据,现在需用第1、2列的数据进行傅里叶变换,程序是什么?高手请教!!!
数据很大,一个文本文档有40多兆(13列,n行(差不多上千行,不好计数)),数据提取出来还要进行傅里叶变换!!
展开
 我来答
shine戚七七
推荐于2017-10-14 · TA获得超过4.7万个赞
知道大有可为答主
回答量:2万
采纳率:75%
帮助的人:2690万
展开全部
方法一:
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\n\n',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
wys7899896
推荐于2017-09-18 · TA获得超过936个赞
知道小有建树答主
回答量:120
采纳率:0%
帮助的人:190万
展开全部
[fid,message]=fopen('文件名.后缀','r');%打开数据文件
if fid==-1
disp(message); %判断文件打开与否
end
[A,count]=fread(fid,[行数,13],'double');%将数据读入A中,?行,13列
fclose(fid);
A11=zeros(0,2); %初始化2列空间
i=1:13; %n为行数
A11(:,i)=A(:,1); %取第一列
A12(:,i)=A(:,2); %取第二列
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友492c9d1
2009-05-06 · TA获得超过424个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:223万
展开全部
我这里有读文档的程序文章,地址:
http://blog.tom.com/jiaqiangwang/article/2497.html
http://blog.tom.com/jiaqiangwang/article/2498.html
程序经过我调试过,可以用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式