dev*_*ium 6 wolfram-mathematica
我有数据(点),我必须从另一个程序导入到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},
}
}
Run Code Online (Sandbox Code Playgroud)
您如何建议我将数据放入中间文本文件中?我应该用什么来导入它?我已经尝试了导入["mytext.txt","List"],我的文本文件包含上面显示的形式,但似乎Mathematica认为这些点是字符串,我不能对它们做任何事情.有没有办法将字符串转换为其他语言中的任意数据(假设它们在新数据类型中有效)?
概括:
谢谢
使用ToExpression将字符串转换为表达式.如果您有一个纯文本文件foo.txt,其格式与您的示例相同,那么只需将其导入Mathematica并使用Get,<< /path/to/foo.txt;
即将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
...
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用Mathematica的CSV导入.然后在导入后将每一行划分为一个点列表.
Partition[#, 3]& /@ Import["file.csv", "CSV"]
Run Code Online (Sandbox Code Playgroud)
另外,请记住,Mathematica的科学记数法不同于C(或者您用于编写数据文件的任何语言).