将列表输出到mathematica文件

时间:2010-11-18 02:18:30

标签: wolfram-mathematica

ret = {};
For[i = 1, i <= Length@x, i++, 
  AppendTo[ret, {idNum = x[[i, 1]] , a = x[[i, 2]], b = x[[i, 3]], 
     c = x[[i, 4]], d = x[[i, 5]], e = x[[i, 6]], f = x[[i, 7]], 
     g = DateDifference[{d, e, f}, {currYear, currMonth, currDay}], 
     If[g > 90, Y, N]}];];
Print@ret

如何将列表输出到没有括号和大括号的文本文件中,每行后也需要换行。

3 个答案:

答案 0 :(得分:2)

您需要使用命令Export,例如以逗号分隔的值保存nxn数组使用类似的内容:

data = RandomInteger[{0, 256}, {50, 50}]
Export[NotebookDirectory[] <> "data.csv", data, "CSV"]

内置格式在$ExportFormats

中给出

答案 1 :(得分:2)

我喜欢使用Export["ret.m", ret, "Lines"]在输出文件ret.m中每行输入一个条目。 YMMV取决于您导出的东西的结构。

答案 2 :(得分:1)

就像一个小伙伴:

在Mathematica中编程的常用方法是功能性的,而不是程序性的。

变量仅在您需要检查某些内容时定义,或者保留结果以供将来工作。此外,不鼓励循环。

您的程序的等效形式(只是快速草稿),在这些行中可能类似于:

x = {{1, a1, b1, c1, 2010, 11, 12},
     {1, a2, b2, c2, 2011, 12, 13}};
Export["c:\data.csv", #, "CSV"] &
[Flatten[
    {#[[1 ;; 7]],
     {#, If[# > 90, "Y", "N"]} &@
      DateDifference[#[[5 ;; 7]], DateList[][[1 ;; 3]]]}
    ] & /@ x]