вывод списка в файл mathematica - PullRequest
0 голосов
/ 18 ноября 2010
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 ]

2 голосов
/ 18 ноября 2010

Мне нравится использовать Export["ret.m", ret, "Lines"], чтобы получить одну запись на строку в выходном файле ret.m.YMMV в зависимости от структуры экспортируемого материала.

2 голосов
/ 18 ноября 2010

Вам необходимо использовать команду Export, например, чтобы сохранить массив nxn, так как значения, разделенные запятыми, используют что-то вроде:

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

Встроенные форматы приведены в $ExportFormats

1 голос
/ 18 ноября 2010

Так же, как в сторону:

Обычный способ программирования в 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...