Меня интересует запись нескольких векторов в файл, чтобы каждый вектор составлял одну строку в файле и записывался в файл, как только он сгенерирован. Элементы вектора должны быть разделены одним пробелом, и я не хочу включать круглые скобки {}
для вектора. По сути, я хочу имитировать 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],
" "]
]