我需要将一个excel文档导入到mathematica中,其中包含2000个化合物,每个化合物都有6个数字常量。最终目标是在mathematica中键入复合名称,并输出6个数字常量。到目前为止,我的代码是:
t =导入[“Titles.txt。”,{“Text”,“Lines”}](导入化合物名称) n =导入[“NA.txt。”,“列表”](导入每个化合物的6个值)
n [[2]](输出第二个化合物6值)
而不是n [[#]]我想知道如何从导入的化合物名称输入化合物并输出6个值。
答案 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}]