从excel为导入的变量赋值

时间:2013-05-23 18:13:04

标签: excel import wolfram-mathematica variable-assignment

我需要将一个excel文档导入到mathematica中,其中包含2000个化合物,每个化合物都有6个数字常量。最终目标是在mathematica中键入复合名称,并输出6个数字常量。到目前为止,我的代码是:

t =导入[“Titles.txt。”,{“Text”,“Lines”}](导入化合物名称) n =导入[“NA.txt。”,“列表”](导入每个化合物的6个值

n [[2]](输出第二个化合物6值

而不是n [[#]]我想知道如何从导入的化合物名称输入化合物并输出6个值。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题 - 例如,您有两个文本文件,而不是Excel文件,并且不清楚数据是什么样的。但是可能有很多方法可以做到这一点。这是一个建议(可能不是最好的方式):

假设您已将所有数据放入表格(列表清单):

pt = {
 {"Hydrogen", "H", 1, 1.0079, -259, -253, 0.09, 0.14, 1776, 1, 13.5984},
 {"Helium", "He", 2, 4.0026, -272, -269, 0, 0, 1895, 18, 24.5874},
 {"Lithium" , "Li", 3, 6.941, 180, 1347, 0.53, 0, 1817, 1, 5.3917}
 }

要查找与特定字符串相关的信息:

Cases[pt, {"Helium", rest__} -> rest]
  

{“他”,2,40026,-272,-269,0,0,1895,18,24.5874}

模式rest__包含“Helium”之后找到的所有内容。

寻找第二项:

 Cases[pt, {_, "Li", rest__} -> rest]
  

{2,4.0026,-272,-269,0,0,1895,18,24.5874}

如果您向模式添加更多信息,您可以更灵活地从表格中选择元素:

Cases[pt, {name_, symbol_, aNumber_, aWeight_, mp_, bp_, density_, 
           crust_, discovered_, rest__} 
      /; discovered > 1850  -> {name, symbol, discovered}]
  

{{“Helium”,“He”,1895}}

对于互动内容,您可以点击Manipulate

elements = pt[[All, 1]];
headings = {"symbol", "aNumber", "aWeight", "mp", "bp", "density", "crust", "discovered", "group", "ion"};
Manipulate[
 Column[{
   elements[[x]],
   TableForm[{
     headings, Cases[pt, {elements[[x]], rest__} -> rest]}]}],
{x, 1, Length[elements], 1}]

interactive