首页 > 解决方案 > 在 Mathematica 中为 ListStreamPlot 创建数据

问题描述

各位晚上好!!在 Mathematica 中导入特定格式的文件时遇到问题。在我的研究中,我通过 Fortran 生成文件,write (10) x, y, Vx, Vy这些文件是向量场分量的位置和值。我需要在 ListStreamPlots 中绘制这些数据,但我不知道如何正确生成表格。data = Import [" / home / davib / Documents / teste.dat "," Table "];

输出文件示例(仅用于测试):

   0.0000000000000000        0.0000000000000000        0.0000000000000000        0.0000000000000000     
  0.10000000000000001        0.0000000000000000        1.0000000000000002E-002   1.0000000000000002E-002
  0.20000000000000001        0.0000000000000000        4.0000000000000008E-002   4.0000000000000008E-002
  0.30000000000000004        0.0000000000000000        9.0000000000000024E-002   9.0000000000000024E-002
  0.40000000000000002        0.0000000000000000       0.16000000000000003       0.16000000000000003     
  0.50000000000000000        0.0000000000000000       0.25000000000000000       0.25000000000000000     
  0.60000000000000009        0.0000000000000000       0.36000000000000010       0.36000000000000010     
  0.70000000000000007        0.0000000000000000       0.49000000000000010       0.49000000000000010     
  0.80000000000000004        0.0000000000000000       0.64000000000000012       0.64000000000000012     
  0.90000000000000002        0.0000000000000000       0.81000000000000005       0.81000000000000005     
   1.0000000000000000        0.0000000000000000        1.0000000000000000        1.0000000000000000     
   1.1000000000000001        0.0000000000000000        1.2100000000000002        1.2100000000000002     
   1.2000000000000002        0.0000000000000000        1.4400000000000004        1.4400000000000004     
   1.3000000000000000        0.0000000000000000        1.6900000000000002        1.6900000000000002     
   1.4000000000000001        0.0000000000000000        1.9600000000000004        1.9600000000000004     
   1.5000000000000000        0.0000000000000000        2.2500000000000000        2.2500000000000000     
   1.6000000000000001        0.0000000000000000        2.5600000000000005        2.5600000000000005   

标签: wolfram-mathematica

解决方案


正如您从文档中看到的那样,ListStreamPlot需要表单的数据

{ { { x, y }, { vx, vy } } ,...}

当你的进口产生

{ { { x, y , vx, vy } } ,...}

这很容易解决

newdata = Partition[ #, 2] &/@ data

哪个映射( Map[] )您的数据,即Partition函数上的 4 向量块,将它们分成两半。


推荐阅读