我有数据(点)我必须从另一个程序导入到Mathematica,所以我可以绘制它。我可以控制如何将点写入文件,因此我可以以任何我想要的方式放置它们。将它们导入Mathematica的最佳方法是什么?由于我将使用StreamDensityPlot,我必须传递给StreamDensityPlot的变量必须采用以下方式:
data = {
{
{ a, b, c }, {a, b, c}, {a, b, c},
{ a, b, c }, {a, b, c}, {a, b, c},
{ a, b, c }, {a, b, c}, {a, b, c},
}
...
{
{ a, b, c }, {a, b, c}, {a, b, c},
{ a, b, c }, {a, b, c}, {a, b, c},
{ a, b, c }, {a, b, c}, {a, b, c},
}
}
您如何建议我将数据放入中间文本文件中?我应该用什么来导入它?我已经尝试了导入[“mytext.txt”,“List”],我的文本文件包含上面显示的形式,但似乎Mathematica认为这些点是字符串,我不能对它们做任何事情。有没有办法将字符串转换为其他语言中的任意数据(假设它们在新数据类型中有效)?
回顾:
由于
答案 0 :(得分:9)
使用ToExpression将字符串转换为表达式。如果您有一个纯文本文件foo.txt,其格式与示例一样,那么只需将<< /path/to/foo.txt;
导入Mathematica,即data
将导入并评估{{1}}你想要的方式,不需要文本到表达翻译。
答案 1 :(得分:5)
尝试格式化您的数据文件:
A, B, C, A, B, C, A, B, C
A, B, C, A, B, C, A, B, C
A, B, C, A, B, C, A, B, C
...
因此您可以使用Mathematica的CSV导入。然后在导入后将每一行划分为一个点列表。
Partition[#, 3]& /@ Import["file.csv", "CSV"]
另外,请记住,Mathematica的科学记数法不同于C(或者您用来编写数据文件的任何语言。