我正在尝试将数据集导入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}
答案 0 :(得分: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]]
答案 1 :(得分: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的初学者。在线文档非常好,但您必须阅读它才能从中获取任何价值。
答案 2 :(得分: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(例如)。