dolly 发表于 2011-1-12 16:05:30

如何从文本中向mathematica7.0导入数据呢?

假设在data.txt文本中存放着两列数据:
1 1
2 4
3 9
4 16
5 25
6 36
我使用了一下命令:
Clear["Global`*"]
a=Import["data.txt"]
但是导入的却不是矩阵,
请问高手,这个是怎么回事呢?
如果不是矩阵的话,就没办法运算,
如果没办法运算的话,我就是白白地导入了.
请高手指点

guocong89 发表于 2011-1-12 16:28:59

1# dolly
怎么不是矩阵呢?我的测试结果是

{{1, 1}, {2, 4}, {3, 9}, {4, 16}, {5, 25}, {6, 36}}

dolly 发表于 2011-1-12 16:32:15

我的mathematica版本是7.0,是不是因为你的版本比我的高级呀?8.0吗

guocong89 发表于 2011-1-12 16:43:15

3# dolly

是8.0,不过不应该,8.0并没有对Import做改变

New in 4|Last modified in 7
你的输出结果是什么?
你的文件格式是文本么?

HyperGroups 发表于 2011-1-12 16:55:11

大宝怎么直接输入就是矩阵了???
我是这样才是矩阵啊
Import["a.txt", "Data"]

HyperGroups 发表于 2011-1-12 16:57:55

str2mat[1 1
2 4
3 9
4 16
5 25
6 36, 2]
{{1, 1}, {2, 4}, {3, 9}, {4, 16}, {5, 25}, {6, 36}}
之前写的那个函数,呵呵,整理一下再发到博客或这里。

dolly 发表于 2011-1-12 17:02:58

5# HyperGroups

五楼正解!我喜欢这个回答,当使用了这个命令后,我的也变成矩阵了,高手真多!

guocong89 发表于 2011-1-12 17:30:17

5# HyperGroups
I get it!

不要给你的文件加后缀名。

我是linux系统,习惯不给文件加后缀名,所以我把数据保存到 文件 a 中,然后调用 Import["a"] 就行了。

我把文件名改成 a.txt, 果然出现你说的那种问题了。

现在分析一下,其实原因很简单,你使用 a.txt 做文件名,那么mathematica把你的文件当作 纯文本 来处理,所以Import 进来是 字符串。

看来,自动处理是个双刃剑啊!mathematica自动识别一个文件的格式也不总是好的。

HyperGroups 发表于 2011-1-12 17:37:29

8# guocong89

恩,对,我刚忘记你的系统了。不过在win里似乎是要加的。

guocong89 发表于 2011-1-12 17:54:40

9# HyperGroups
和操作系统无关,windows下你不给文件加后缀名也没有什么问题,只是这个文件不能被记事本自动关联了而已。

后缀名是windows(或者是dos)很糟糕的设计,让很多危险文件通过后缀名隐藏自己的真实身份。

HyperGroups 发表于 2011-1-12 18:10:55

10# guocong89

对,是我自己搞错了,是可以的,刚重新试了一下。很奇怪之前为什么没试成功,稀里糊涂了,
页: [1]
查看完整版本: 如何从文本中向mathematica7.0导入数据呢?