matlab提取txt文件的第一列

有txt文件,里面包含了两列数据:

现在我想提取出第一列,并把它保存在一个新的.txt文件里。请问应该怎么写程序~谢谢各位

记事本中文本内容如下:

 è§£ç­”:

oldf = 'd:\matlabwork\oldf.txt';
dt = textread(oldf);
dd = dt(:,1);
newf = 'd:\matlabwork\newf.txt';
save(newf,'dd','-ascii');                    % 存为文本文件

    é»˜è®¤ç²¾åº¦åªèƒ½åˆ°å°æ•°ç‚¹åŽä¸¤ä½ï¼Œå¦‚果要达到原来的有六位小数可以这样做:

% 要增加精度加 '-double'
save(newf,'dd','-ascii','-double');

    ç”±äºŽdouble精度太多了,变成 6.3467453393499996e+005了,假如原来的那么多位就好,要怎么弄呢?可以这么做

如下:

dlmwrite(newf, dd, 'delimiter', ' ', 'precision', '%6.6f', 'newline', 'pc')

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-15
先把该文件复制到MATLAB工作目录,
然后
load 文件名.txt
会得到一个n*2的矩阵,保存在变量中,假设是变量date,然后再输入
a=date(:,1);
然后再输入:
save a,用记事本打开matlab.mat,另存为txt即可追问

能够直接给代码么~~~我不懂matlab,你说的这些我都不明白呢。谢谢~

第2个回答  2013-05-15
你用load函数加载进去,比如这么写
d = load('txt文件的路劲');
col1 = d(:,1); %col1应该就是第一列的数据了,即取d的第一列
第3个回答  2013-05-16
oldf = 'd:\matlabwork\oldf.txt';
dt = textread(oldf);
dd = dt(:,1);
newf = 'd:\matlabwork\newf.txt';
save(newf,'dd','-ascii'); % 存为文本文件追问

请问精度只能到小数点后两位吗?可是原来的有六位小数呢!

追答

% 要增加精度加 '-double'
save(newf,'dd','-ascii','-double');

追问

double精度太多了,变成 6.3467453393499996e+005了,我要保持原来的那么多位就好,该怎么弄呢?

追答

dlmwrite(newf, dd, 'delimiter', ' ', 'precision', '%6.6f', 'newline', 'pc')

本回答被提问者和网友采纳

matlab提取txt文件的第一列
oldf = 'd:\\matlabwork\\oldf.txt';dt = textread(oldf);dd = dt(:,1);newf = 'd:\\matlabwork\\newf.txt';save(newf,'dd','-ascii'); % 存为文本文件 默认精度只能到小数点后两位,如果要达到原来的有六位小数可以这样做:要增加精度加 '-double'save(newf,'dd','-ascii','...

matlab 读提带有头文件的txt文件 第一行是数据名称, 余下行是数据,因为...
你这种。最好读了。[x,y,z]=textread('文件名','%f%f%f','headerlines',1); %尤其是对你这种,列数一样的情况下。

怎么用matlab从一个有45列300行的txt文档数据库中提取第1和第6两列...
A=load(‘X:\\xx.txt’)A1=A(:,1);A2=A(:,6);A=[A1,A2)]fid = fopen('data.txt','w');fprintf(fid,'%d',A);fclose(fid);

Matlab怎么读取txt文件,现有如下数据分别赋予X(第一列),Y(第二列...
可以用函数importdata('文件路径');例如:temp=importdata('D:\\matlab_my\\temp.txt');temp=temp.data;temp矩阵即你读进来的数据。x=temp(:,1);y=temp(:,2);z=temp(:,3);有什么问题你再问我,都是数值的txt。这么写是没有问题的。如果txt文件中字符和数值混杂要具体情况具体分析。

MATLAB 输出每行的第一个数据 代码如下
filename='d:\\data.txt';lines=11; %最多11行数据 fid=fopen(filename,'r');line_i=0;while(~feof(fid) && line_i<lines )dataline=fgetl(fid);line_i=line_i+1;data{line_i}=transpose(sscanf(dataline,'%d')); %如果全是整数,就用%d,不要用%f data_1(line_i,1)=...

matlab读取txt文件,文件第一行是中文,之后是ascall码。
fid=fopen('a.txt','r');i=1;while ~feof(fid)templine{i}=fgetl(fid);i=i+1;end finout=fopen('b.txt','w');printf(findout,'%s\\r\\n',templine{i});fclose(fid)fclose(fidin)

我有一个txt文件,里面有两列数据,要用MATLAB从txt中读两个变量的数据...
fclose(fid1); %读取txt文件,读取时是一行一行读的,所以需要把基数项的赋值给x,把偶数项的 赋值给y x=[];y=[];k=length(y1);for i=1:k if (mod(i,2)==1)x=[x,y1(i)]; % 基数项写入x else y=[y,y1(i)]; % 偶数项写入y,生成的x,y是行向量,如果需要列向量...

matlab如何剔除txt文档第一行的字母,只保留后面行的数据?
忽略标题file_t = fopen('headline.txt','r');%忽略掉第一行的标题信息A = textscan(file_t,'%d %d','HeaderLines',1);A 可以参考下面这条回答,基本功能都用到了,挺详细的。是我之前学习matlab读取文件时的笔记 http:\/\/zhidao.baidu.com\/link?url=AQPtZqgvUTn6qWcSJmxwyYHrLRPS02UNZiZ...

如何利用MATLAB读取TXT文件,根据第一列数值将第二列数值存入到两个不...
A=dlmread('1.txt');p=A(find(A(1,:)==0);n=A(find(A(1,:)==1);忘记是A(1,:)还是A(:,1)你自己测试下吧

matlab中如何读取多个txt文件中的某一行的数据
1. 逐一以文本形式打开文件 file(n).txt ;2. 逐行读出数据,并判断前9个字符是否 Timestamp ;3. 如是,在下一行接收数据存入结果并退出此文件;4. 如不是,继续往下读数据。pt = 'd:\\data\\'; % 数据路径 ff = 'file'; % 数据文件前缀 ext = '.txt'; % 数据文件扩展名 s...

相似回答