我有一个包含40,000个数据点的文件 . 在Matlab中我可以使用plot命令绘制图:
aaa = Import('file Name'); plot(aaa,mesh)
我怎么在Mathematica中做到这一点?我试过了:
aaa = Import["File Name"] ListPlot3D[aaa]
但它不起作用 .
这里有两个问题:(1)如何将数据导入Mathematica和(2)如何显示它 .
对于第一个问题,最简单的答案是:它取决于数据的格式 . 如果文件是supported types之一,则Import具有许多无法击败的功能 . 如果您的数据仅以制表符(或空格)分隔,请使用"Table"格式,如下所示:
Import["file name", "Table"]
使用各种导入选项指定记录和字段分隔符 . 或者,您可以使用ReadList,它只读取值列表 . 如果您的数据是表格
value value value ... value etc.
其中value是数字,每行是一个单独的记录,我将使用它导入
ReadList["file name", Number, RecordLists -> True]
它将文件加载到矩形数组中 .
至于第二个问题,如果你的数据是一组三元组,即(x,y,z),或只是一组高度值,那么ListPlot3D应该可以正常工作 . 如果您的数据不是形式(x,y,z,f),其中f是(x,y,z)处的函数值,那么您应该使用ListContourPlot3D . 您可以使用“轮廓”选项指定所需的轮廓 . 请注意,ListContourPlot3D可能需要一段时间才能生成绘图,具体取决于数据集的大小 . 此外,它可以是内存耗费,在我的机器(G4,MacOS 10.4,2 GB)上,80 x 80 x 80网格的ListContourPlot3D可以轻松占用500 MB .
1 回答
这里有两个问题:(1)如何将数据导入Mathematica和(2)如何显示它 .
对于第一个问题,最简单的答案是:它取决于数据的格式 . 如果文件是supported types之一,则Import具有许多无法击败的功能 . 如果您的数据仅以制表符(或空格)分隔,请使用"Table"格式,如下所示:
使用各种导入选项指定记录和字段分隔符 . 或者,您可以使用ReadList,它只读取值列表 . 如果您的数据是表格
其中value是数字,每行是一个单独的记录,我将使用它导入
它将文件加载到矩形数组中 .
至于第二个问题,如果你的数据是一组三元组,即(x,y,z),或只是一组高度值,那么ListPlot3D应该可以正常工作 . 如果您的数据不是形式(x,y,z,f),其中f是(x,y,z)处的函数值,那么您应该使用ListContourPlot3D . 您可以使用“轮廓”选项指定所需的轮廓 . 请注意,ListContourPlot3D可能需要一段时间才能生成绘图,具体取决于数据集的大小 . 此外,它可以是内存耗费,在我的机器(G4,MacOS 10.4,2 GB)上,80 x 80 x 80网格的ListContourPlot3D可以轻松占用500 MB .