2

データセットをMathematicaにインポートしようとしています。問題は、インポートしたデータをMathematicaでハミング数として持つことができないことです。それらは「リスト」としてインポートされます。したがって、必要な方程式でそれらを使用することはできません。

Import["out.dat", "Data"]
{{5.7, 4.3}, {-1.2, 7.8}}
Array[cc, {2, 2}]
For[i = 1, i <= 2, i++, 
 For[j = 1, j <= 2, j++, 
  cc[i, j] = Take[Import["out.dat", {"Data", i}], {j, j}]]]

今、私はそうする必要c[1,1]があります5.7が、それは{5.7}あなたが見るようです:

cc[1, 1]
{5.7}
4

3 に答える 3

1

最初に配列要素にアクセスするには、「[[ ]]」を使用します

    c = {{5.7, 4.3}, {-1.2, 7.8}};
    c[[1, 1]]
    Out=5.7

アップデート。

c[[1,1]] を使用して 2 次元配列 (行列) にアクセスし、単純な配列にアクセスするには c[[1]] を使用します。

    In[27]:= Import["d:\\dat.out", "Table"]    
    Out[27]= {{5.7, 4.3, -1.2, 7.8}}    
    In[28]:= %[[1]]    
    Out[28]= {5.7, 4.3, -1.2, 7.8}    
    In[29]:= IntegerPart[#] & /@ %    
    Out[29]= {5, 4, -1, 7} 
etc...

更新 2。

cc[1, 1] == {5.7}次に、配列要素セレクターを再度使用する場合:

cc[1,1][[1]]
于 2010-01-28T11:56:00.957 に答える
1

これは、dat ファイルのコンテンツの正確な形式によって異なります。たとえば、ファイルに数字タブ (またはスペース) と次のように区切られた行のみが含まれている場合:

5.7   4.3
-1.2  7.8

それから声明

cc = Import["out.dat"]

データを変数 cc に直接ロードします。次に、配列添字の正しい表記法、つまり [[ と ]] ではなく [ と ] を使用して、必要に応じて配列の各要素の数値にアクセスできます。とてもシンプルです。入力ファイルがより複雑な場合は、(a) 単純化するか、(b) Import[] 関数のさまざまなオプションとパラメーターを調べる必要があります。

原則として、Mathematica でループを書いていることに気付いた場合、それは正しく行っていません。

フォーム

c[1,1] = 5.7

Mathematica にとっては関数定義です.これは、配列内の要素への割り当てに非常によく似ています。つまり、関数であるが配列のように見えるあらゆる種類の興味深いオブジェクト、または関数のように見える配列を定義できることを意味します。もちろん、これは配列がインデックス空間から要素のセットへの関数であるためです。しかし Mathematica では [ と ] で引数を関数に区切ります。

あなたの質問とコメントから、Mathematica の初心者だと思います。オンライン ドキュメントは非常に優れていますが、そこから何らかの価値を得るには、それを読む必要があります。

于 2010-01-28T13:58:53.840 に答える
0

私はこれがあなたが望むことをするだろうと思います:

mat = {{5.7, 4.3}, {-1.2, 7.8}};
Do[c[i, j] = mat[[i, j]], {i, 2}, {j, 2}]

次に、c [1、1]は5.7を返します(たとえば)。

于 2010-02-14T16:28:40.933 に答える