Wolfram mathematica 不使用导出将向量写入文件
我感兴趣的是将多个向量写入一个文件,使每个向量在文件中形成一行,并在生成后立即写入文件。向量的元素需要用一个空格分隔,我不想包含向量的Wolfram mathematica 不使用导出将向量写入文件,wolfram-mathematica,Wolfram Mathematica,我感兴趣的是将多个向量写入一个文件,使每个向量在文件中形成一行,并在生成后立即写入文件。向量的元素需要用一个空格分隔,我不想包含向量的{}括号。基本上,我想模拟C的fprintf(“文件”,“f%f%f\n”)功能 这是我的。有更好的方法吗 st1 = OpenWrite["C:\\junk\\mu.out", FormatType -> OutputForm]; vt = Table[ v = RandomReal[{0, 1}, 5]; For[j = 1, j <
{}
括号。基本上,我想模拟C的fprintf(“文件”,“f%f%f\n”)
功能
这是我的。有更好的方法吗
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"
也许是这个
WriteVector[stream_, vector_] :=
WriteString[stream, ##, "\n"] & @@ Riffle[vector, " "]
以及:
然后:
并检查:
FilePrint[fname]
完成后关闭流:
Close[fname]
你如何更好地定义?更快?使用更少的内存?更优雅?更短?@acl:我想是一种更优雅、更实用的方法,我想知道,是否可以保证即使最后不调用
Close[stream]
也能将所有内容写入文件?(当然不是。)@Szabolcs,我不知道。我倾向于将代码打包以消除资源泄漏。@Szabolcs——WriteString在求值期间刷新其流。
Do[WriteVector[fname, RandomReal[{0, 1}, 5]],{10}]
FilePrint[fname]
Close[fname]