24小时热门版块排行榜    

查看: 493  |  回复: 5
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

[交流] 【求助】数据的读入

使用的软体是Mathematica 5.2 。

之前有一点点使用C的经历,当然也不是很熟悉了!比较喜欢符号计算系统,所以选择了Mathematica软件!

我想这么操作,定义一个一维数组,当然在mathematica中是叫做列表的,比如,这个一维的数组有十个元素,我需要的是,定义完之后,需要从一个文档中读入数据。 数据的格式如下:
618.12
466.06
447.29
439.61
414.74
404.89
397.65
391.82
381.30
358.47
即,每行一个,应该说,都是实型数据。假定数据文档为:data.txt(是Linux系统下的文档格式)

在Mathematica中如何读取这个外部文档data.txt中的数据,赋值到我定义的一位数组?

希望大侠指教!

[ Last edited by woshilsh on 2008-12-7 at 22:19 ]
回复此楼

» 猜你喜欢

Chemistry[]==[]Chem[]is[]try!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coldwind042

金虫 (正式写手)


kuhailangyu(金币+1,VIP+0):thanks~~!
相关命令:
filename 显示文件内容
< Expr:>>filename 打开文件写
Expr>>>filename 打开文件从文件末写

Read (Built-in Mathematica Symbol)
Read[stream] reads one expression from an input stream, and returns the expression. Read[stream, type] reads one object of the specified type. Read[stream, {type_1, type_2, ...
OpenRead (Built-in Mathematica Symbol)
OpenRead["file"] opens a file to read data from, and returns an InputStream object.

数据文件:D:\data.txt
618.12
466.06
447.29
439.61
414.74
404.89
397.65
391.82
381.30
358.47
程序代码:
Clear[str,n,x,i];
str = OpenRead["D:\data.txt"];
n=10;
x=Range[n];
Do[x[]=Read[str, Number],{i,1,n}]
x

运行结果:
{618.12, 466.06, 447.29, 439.61, 414.74, 404.89, 397.65, 391.82, \
381.3, 358.47}
3楼2008-12-05 17:18:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

woshilsh

荣誉版主 (职业作家)

优秀版主

帮你顶起来,Matlab里面操作简单,直接载入即可,Mathmatic里不知道咋弄?还没装这软件,丁起来让会的弄,我也顺便学习下
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&amp;amp;amp;say=各位版主辛苦了![/img][/url][/center]
2楼2008-12-05 15:33:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

abbott

金虫 (著名写手)

不要用QQ问我东西

谢谢你的指点

现在我顺利的读入数据,得到的想要的计算结果!
目前正在琢磨绘图指令和数据的输出!

我计算得到的数据是这样的结果的:
{0.00045224, 0.000525196, 0.000607412, 0.000699634, 0.0008026, 0.000917037, \
0.00104365, 0.0011831, 0.00133602,(中间省略很多) 0.00150299, 0.00168453, 0.0018811, \
0.00209309, 0.00232084, 0.00256464, 0.00282469, 0.00310119, 0.00339428, \
0.00370412, 0.00403086, 0.00437469,}

我想把这个数据转化成这样的格式:
全部右对齐,一行一个数据,如同上面的输入数据的格式一样!
而且我希望这里的科学计数法,在Origin 和 Excel软见中也可以识别!

期待大侠的帮助!
Chemistry[]==[]Chem[]is[]try!!!
4楼2008-12-06 20:43:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★
coldwind042(金币+2,VIP+0):厉害!谢谢
SetDirectory["D:\\"];
A={0.00045224, 0.000525196, 0.000607412, 0.000699634, 0.0008026, 0.000917037, \
0.00104365, 0.0011831, 0.00133602,(中间省略很多) 0.00150299, 0.00168453, 0.0018811, \
0.00209309, 0.00232084, 0.00256464, 0.00282469, 0.00310119, 0.00339428, \
0.00370412, 0.00403086, 0.00437469,};
N=Length[A];
strm=OpenAppend["1.dat",FormatType->OutputForm];
Do[Write[strm,FortranForm[Part[A,i]]],{i,1,N}];
Close[strm];
5楼2008-12-29 16:41:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见