xiaohaha007 发表于 2010-12-14 21:14

回复 13 # Jonah_K500 的帖子

但是 ,如果数据量很多的话,粘贴时很麻烦,我要的是按行读取啊,而且有很多行,不可能把每一条行粘贴成每一列的,然后再加在一块,那样太麻烦了的

ChaChing 发表于 2010-12-14 22:45

本帖最后由 ChaChing 于 2010-12-14 22:52 编辑

个人猜测LZ可能没说明白, 一般试验数据可能在最後一行会有不足数的情况! 所以无法使用load直接读入matlab
是这样吗? 若是, 试下
fid=fopen('aaa.txt'); aa=fscanf(fid,'%e',inf);

xiaohaha007 发表于 2010-12-15 10:56

回复 17 # ChaChing 的帖子

恩,呵呵,谢谢你,就是你出的那种情况,可能我就是没说清楚吧,我按照你说的程序,运行出来了,但是结果都是零啊,我再前面加上了format long 啊,不知道是怎么一回事?

qibbxxt 发表于 2010-12-15 14:10

回复 18 # xiaohaha007 的帖子

你可以举个例子,上传一个文件,大家来试验一下,你说不清楚,别人都在这里乱猜,还是解决不了问题

xiaohaha007 发表于 2010-12-15 14:59

恩,呵呵,怪我没说清楚,我在六楼上传了一个数据,按照17楼的方法,运行了,
程序如下:format long
fid=fopen('111.txt');
aa=fscanf(fid,'%e',inf); 结果在workspace里面全是0,

ChaChing 发表于 2010-12-15 15:01

我是有试过6F的数据的! 下载后更名为aaa.txt
LZ的6F资料, 若直接使用load会有如下报错
??? Error using ==> load
Number of columns on line 1010 of ASCII file C:\MATLABR11\work\aaa.txt
must be the same as previous lines.
检查下资料不难发现第1011行仅有4笔数据
若以17F的方式读取, aa即直接为10809*1
fid=fopen('aaa.txt'); aa=fscanf(fid,'%e',inf);
plot(aa); grid on
图形如下


format long仅是显示而已, 直接plot看看吧

xiaohaha007 发表于 2010-12-15 15:57

回复 21 # ChaChing 的帖子

太谢谢你了啊,按照你说的,运行出来了,刚开始我没注意到,就是前面很多为零,以为有问题,实际上没问题了,谢谢你的解答啊!

qibbxxt 发表于 2010-12-15 16:08


clear;clc;close all
a=importdata('地震波.txt')';
b=a(~isnan(a));这个应该可以读的
你应该举个简单的例子,或者早些说明你的数据不是矩阵,那么大的数据谁会知道1011行少个数啊

xiaohaha007 发表于 2010-12-15 16:18

回复 23 # qibbxxt 的帖子

恩,是的,不好意思了,让大家辛苦了,下次我一定注意。

ChaChing 发表于 2010-12-15 16:24

实际应用上常会遇到这情况, 所以我才会猜测LZ可能没说明白!
一堆高手被LZ的例子导偏了, 反正新手嘛, 大家体谅下, 以后多练习歷练吧:@)
以前旧版本没importdata函数, 所以已经习惯旧思维了, 楼上的方式应该更好

xiaohaha007 发表于 2010-12-15 19:05

回复 25 # ChaChing 的帖子

恩,呵呵,问题误导大家了啊,以后多加紧学习和交流!

longevity118 发表于 2010-12-15 21:03

xlswrite 语句或FOR循环

ChaChing 发表于 2010-12-15 23:55

回复 27 # longevity118 的帖子

个人水平有限, 不清楚什麽意思?:@)

路上的风景 发表于 2011-5-27 12:12

这个问题,对于偶们初学者,很有用。

路上的风景 发表于 2011-5-27 12:19

format long
fid=fopen('111.txt');
aa=fscanf(fid,'%e',inf);
这个短程序如何用啊, 该放到哪里,才能打开6楼的 地震波.txt?
页: 1 [2] 3
查看完整版本: 请教各位怎样把下列数据按行读取,变成一列?