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]] 用于访问二维数组(矩阵) 访问简单数组使用 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 回答