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')

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