Запись векторов в файл без использования экспорта

Меня интересует запись нескольких векторов в файл, чтобы каждый вектор составлял одну строку в файле и записывался в файл, как только он сгенерирован. Элементы вектора должны быть разделены одним пробелом, и я не хочу включать круглые скобки {} для вектора. По сути, я хочу имитировать fprintf ("file", "% f% f% f \ n") функциональность C.

Вот что у меня есть. Есть ли лучший способ сделать это?

st1 = OpenWrite["C:\\junk\\mu.out", FormatType -> OutputForm];

vt = Table[
   v = RandomReal[{0, 1}, 5];

   For[j = 1, j <= Length[v], j++, 
    WriteString[
     st1, 
     SequenceForm[NumberForm[v[[j]], ExponentFunction -> (Null &)], 
      " "]
     ]
    ];
   Write[st1, ""];
   v,
   {200}
   ];

In[3]:= Close[st1]

Out[3]= "C:\\junk\\mu.out"

На основе замечательной функции Riffle, любезно предоставленной Арно и мистером Волшебником, я изменил ее следующим образом:

WriteVector[stream_, vector_] :=
 Apply[WriteString[stream, ##, "\n"] &, 
  Riffle[Map[NumberForm[#, ExponentFunction -> (Null &)] &, vector], 
   " "]
  ]
6
задан asim 2 December 2011 в 21:56
поделиться