Import 如何在Mathematica中以数组形式从文件导入数据?

Import 如何在Mathematica中以数组形式从文件导入数据?,import,numbers,wolfram-mathematica,Import,Numbers,Wolfram Mathematica,我正在尝试将数据集导入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", {

我正在尝试将数据集导入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]]用于访问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]]

这确实取决于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的初学者。在线文档非常好,但您必须阅读它才能从中获得任何价值。

我认为这正是您想要的:

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(例如)。

谢谢,out.dat:5.7 4.3-1.2 7.8我在使用cc[[1,1]]时遇到此错误:cc[[1,1]]Part::partd:Part specification cc[[1,1]]比\object的深度长。>>抄送[[1,1]]你能发布你的新代码吗。我猜您没有使用“表”选项进行导入。
c[1,1] = 5.7
mat = {{5.7, 4.3}, {-1.2, 7.8}};
Do[c[i, j] = mat[[i, j]], {i, 2}, {j, 2}]