声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6920|回复: 19

[混合编程] 如何从txt文本中提取一列数据?

[复制链接]
发表于 2010-1-28 10:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
大家好!我是MATLAB新手,现在需要从16384行5列的文本数据中提取某一列(如第5列)数据,如何实现呢?期待大侠们的帮助!万分感谢!急!
下面是部分数据(文件名为:9jieguo1.txt):
  
  0.50000E-02    0.500000E-02 -0.532891E-08 -0.532891E-08 -0.532891E-08
  0.10000E-01    0.100000E-01 -0.762978E-08 -0.762978E-08 -0.762978E-08
  0.15000E-01    0.150000E-01  0.267390E-07  0.267390E-07  0.267390E-07
  0.20000E-01    0.200000E-01  0.633209E-07  0.633209E-07  0.633209E-07
  0.25000E-01    0.250000E-01  0.247159E-07  0.247159E-07  0.247159E-07
  0.30000E-01    0.300000E-01 -0.324865E-07 -0.324865E-07 -0.324865E-07
  0.35000E-01    0.350000E-01 -0.254028E-07 -0.254028E-07 -0.254028E-07
  0.40000E-01    0.400000E-01 -0.297539E-08 -0.297539E-08 -0.297539E-08
  0.45000E-01    0.450000E-01  0.588851E-08  0.588851E-08  0.588851E-08
  0.50000E-01    0.500000E-01  0.332077E-07  0.332077E-07  0.332077E-07
  0.55000E-01    0.550000E-01  0.488184E-07  0.488184E-07  0.488184E-07
  0.60000E-01    0.600000E-01  0.292068E-07  0.292068E-07  0.292068E-07
  0.65000E-01    0.650000E-01  0.236863E-08  0.236863E-08  0.236863E-08
  0.70000E-01    0.700000E-01 -0.236116E-07 -0.236116E-07 -0.236116E-07
  0.75000E-01    0.750000E-01 -0.416398E-07 -0.416398E-07 -0.416398E-07

[ 本帖最后由 ChaChing 于 2010-1-28 21:10 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-1-28 11:31 | 显示全部楼层
先load进, 再处理!
 楼主| 发表于 2010-1-30 15:18 | 显示全部楼层

回复 沙发 ChaChing 的帖子

非常感谢!问题已经解决!祝你天天快乐!
发表于 2010-1-30 17:14 | 显示全部楼层

回复 板凳 zql_progress 的帖子

怎解决! 建议与大家分享你的成果
发表于 2010-2-6 20:59 | 显示全部楼层

同问这个问题

我已经有txt文本数据,如何导入matlab处理,可否给各详细步骤,感谢
发表于 2010-2-6 21:03 | 显示全部楼层

回复 5楼 wusemm 的帖子

help load
help importdata
发表于 2010-2-7 09:47 | 显示全部楼层
程序和输入文件见附件。 希望看到其他的程序。


输入文件:input.dat
11 8
-.11369E-35 .12006E+04 -.44973E+00 -.25486E+01 -.49342E+00 -.96195E-01 -.27174E+01 .29109E+01
-.20046E-35 -.46788E+04 .71252E-01 .57758E+02 -.14295E+01 .37558E+01 .57783E+02 -.50423E+01
-.16585E-38 .52330E+01 -.44525E-02 .49700E-02 -.66855E-02 .69460E-02 .41395E-02 .35363E-01
.20948E-38 .16339E+01 -.16281E-03 -.21950E-01 -.59159E-05 .17444E-03 -.18972E-01 .55946E-02
.14227E-38 -.91208E+00 -.13754E-03 .44672E-02 -.57513E-03 .20959E-02 .43984E-02 .49620E-02
-.14887E-38 .14533E+01 .41109E-04 -.67149E-02 .79985E-03 -.32606E-02 -.62200E-02 -.87427E-02
.89508E-39 .26151E+01 .86498E-03 -.51974E-01 .22977E-02 -.41590E-02 -.45913E-01 -.33926E-02
.26184E-38 .11988E+01 -.83188E-03 -.28858E-02 -.11694E-02 .11043E-02 -.14038E-02 .25288E-02
.31325E-38 -.16718E+01 .96352E-03 -.29389E-03 .13620E-02 .27050E-03 .11479E-03 -.54524E-02
.53622E-39 -.11350E+01 .31951E-03 .77262E-03 .33178E-03 -.16097E-03 -.48947E-03 -.20563E-02
-.11869E-38 .48081E+00 -.51258E-03 .48091E-03 -.83320E-03 -.55140E-03 .91278E-03 .53598E-03

源代码
clear all;
clc;
fid=fopen('input.dat','r');
%读入矩阵的行和列
tmp=fscanf(fid,'%f',2);
row=tmp(1); % 行
col=tmp(2); % 列
%
tmp=fscanf(fid,'%f',[col,row]);
A = tmp';
fclose(fid);
%取矩阵的第5列
B=A(:,5);

[ 本帖最后由 ChaChing 于 2010-2-7 10:43 编辑 ]
发表于 2010-2-7 10:42 | 显示全部楼层
个人水平有限, 不知LS想讨论什么?
基本上, LS的程式没什么问题!
发表于 2010-2-7 12:22 | 显示全部楼层
刚才在版内搜索相关的帖子,发现论坛元老eight发的精华帖,
把链接写上,也许会对wusemm 有所启发。
使用文本文件(.txt)进行数据存取的技巧总结

点评

这个的确非常的经典啊!  发表于 2010-11-25 22:20

评分

1

查看全部评分

发表于 2010-10-27 20:56 | 显示全部楼层
回复 zql_progress 的帖子

楼主请问怎么解决的?我现在也遇到这个问题,能否把源代码贴上
发表于 2010-10-27 23:18 | 显示全部楼层
回复 快乐人生662 的帖子

楼主很久没来了!:lol
请楼主分享解决成果并赚积分, 也忘了...
2/6/9F无法解决LS的问题吗? 或说明具体些:@)
发表于 2010-10-28 21:03 | 显示全部楼层
回复 ChaChing 的帖子

谢谢,问题已经解决了,
load 'data.txt';
B=data(:,2);即可

评分

2

查看全部评分

发表于 2010-10-28 21:26 | 显示全部楼层

从操作的角度来讲,这是一种最简单的实现方式
从执行的角度来讲,这时一种最不经济的实现方式
发表于 2010-10-28 21:40 | 显示全部楼层
本帖最后由 ChaChing 于 2010-10-28 21:41 编辑
happy 发表于 2010-10-28 21:26
...这时一种最不经济的实现方式


有否较经济的实现方式!? fscanf? thks
发表于 2010-10-29 21:15 | 显示全部楼层
回复 happy 的帖子

能否告知一种更好的方法?期待中
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 10:10 , Processed in 0.066412 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表