1

Excel ドキュメントを mathematica にインポートする必要があります。このドキュメントには 2000 の化合物が含まれており、各化合物には 6 つの数値定数が割り当てられています。最終目標は、化合物名を mathematica に入力して、6 つの数値定数を出力させることです。これまでのところ、私のコードは次のとおりです。

t = Import["Titles.txt.", {"Text", "Lines"}] (化合物名をインポート) n = Import["NA.txt.", "List"] (化合物ごとに 6 つの値をインポート)

n[[2]] ( 2 番目の化合物 6 つの値を出力)

n[[#]] の代わりに、インポートした化合物名から化合物を入力し、6 つの値を出力する方法を知りたいです。

4

1 に答える 1

0

あなたの質問を理解しているかどうかわかりません。たとえば、Excel ファイルではなく 2 つのテキスト ファイルがあり、データがどのように見えるかが明確ではありません。しかし、おそらくこれを行う方法はたくさんあります。ここに提案があります(最良の方法ではないかもしれません):

すべてのデータをテーブル (リストのリスト) にまとめたとします。

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, 4.0026, -272, -269, 0, 0, 1895, 18, 24.5874}

パターンrest__には、「ヘリウム」の後に見つかったすべてが含まれています。

2 番目のアイテムを探すには:

 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}]

{{「ヘリウム」、「彼」、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}]

相互の作用

于 2013-05-24T09:44:24.943 に答える