Wolfram mathematica 将表格导出为CSV,使用逗号而不是换行符

Wolfram mathematica 将表格导出为CSV,使用逗号而不是换行符,wolfram-mathematica,Wolfram Mathematica,我有一个函数f[a]。我在表中运行它,生成一个巨大的值列表,供以后在C程序中用作查找表。我想将其导出为CSV,以便将其复制/粘贴到我的代码编辑器中,并快速将其转换为C数组(我所要做的就是将其用大括号括起来,并给其命名): 我想要的是: 0, 1, 2, 3, 4, 5, 6 以此类推,但我最终得出以下结论: 0 1 2 3 4 5 6 每个条目都在一个新行上。我错过了什么简单而明显的事情 谢谢 这应该满足您的要求: Export["myfile.csv", Transpose@Table[{

我有一个函数
f[a]
。我在
表中运行它,生成一个巨大的值列表,供以后在C程序中用作查找表。我想将其导出为CSV,以便将其复制/粘贴到我的代码编辑器中,并快速将其转换为C数组(我所要做的就是将其用大括号括起来,并给其命名):

我想要的是:

0, 1, 2, 3, 4, 5, 6
以此类推,但我最终得出以下结论:

0
1
2
3
4
5
6
每个条目都在一个新行上。我错过了什么简单而明显的事情


谢谢

这应该满足您的要求:

Export["myfile.csv", Transpose@Table[{f@a}, {a, 0, 6}], "CSV"]
您的方法将产生一个列向量,这将导致每一行被写在新行上。将表创建为行向量可以解决此问题。在本例中,每列用逗号分隔


创建一个列表列表似乎是一种很糟糕的方法,但Mathematica内部就是这样处理的。如果从问题中的代码导入CSV文件:

Import["myfile.csv"]
Out[1]={{0}, {1}, {2}, {3}, {4}, {5}, {6}}

您可以看到Mathematica已自动将每个元素填充到列表中。因此,它必须以这种方式或以中的方式填充到列表中。

如果导出对象是单个列表,则可以避免修改其元素,只需将其包装到
列表中即可:

Export["myfile.csv", List @ Table[f[a], {a, 0, 6}]]

使用
分区如何

f[x_] = Sin[x/10.];

Export["C:\\Users\\Sjoerd\\Desktop\\myfile.csv",
       Partition[Table[f[a], {a, 0, 600}], 30], 
       "CSV"
];

您可以使用更通用的方法导出,并指定行分隔符。例如:

Export["myfile.csv", Table[f[a], {a, 0, 6}], "Table", "LineSeparators" -> ", "]

FilePrint["myfile.csv"]
(* Returns: 
f[0], f[1], f[2], f[3], f[4], f[5], f[6]
*)

您可能还需要指定
“FieldSeparators”
选项,
“Table”
的默认格式为
“\t”

是的,谢谢,它解决了我眼前的问题。仅仅将列表塞进另一个列表中以利用导出的工作方式感觉有点笨拙。你介意我在接受之前稍等一会儿,看看是否还有其他东西进来吗?通常有几种方法可以让事情完成,我真的很想看看这里是否有其他选择+1不管怎样,因为它可以工作:)谢谢尤达,很高兴你能理解。你的C编译器不会介意这种格式,那么你有什么问题吗?是的,会的。输出中没有逗号,因此我必须加载该文件,用\n替换为,\n,然后保存它。当我有一个工具完全能够为我完成工作时,我不想这样做。另外,我正在生成大量的查找表,所以如果可能的话,我想自动化所有的过程。好的,我误解了你最初的问题。请看我的答案。那有用吗?谢谢Sjoerd。我已经对问题进行了编辑以使其更清晰。使用值为1的分区与yoda和Wizard先生的解决方案具有相同的效果。很高兴看到另一种方法,谢谢。如果我打算使用Excel,那么这将非常有助于适应x列宽。@Tim Excel只是作为一个例子。如果有人需要检查数据文件(例如,从IDE中),那么屏幕上的数据文件也会更紧凑。这将是我使用这个.Sjoerd的主要原因,这种方法的问题是它不会在每个分区子列表后插入逗号-也就是说,换行符只是换行符,而不是换行符加逗号。我需要在每个条目后面加一个逗号。比使用转置更简洁。谢谢@Tim,我本来可以把我的答案写得更好,因为没有理由避免
转置
,而是避免必须更改表对象。@Tim表是2D结构。在CSV中,行分隔符是新行,列分隔符是逗号。事实上,这一个可以被称为标准解决方案。10分更接近你的10K:-)啊哈!我就知道还有别的办法!谢谢对不起,尤达,但西蒙的回答更笼统(而且他非常接近10k…);我真的必须接受这个。@TimKemp不用担心:)Simon的答案当然更好。@yoda:事实上,我更喜欢Wizard先生使用的结构。我会这样做的。我发布这篇文章只是为了展示一个没有使用显式的
“CSV”
导出格式的解决方案。
Export["myfile.csv", Table[f[a], {a, 0, 6}], "Table", "LineSeparators" -> ", "]

FilePrint["myfile.csv"]
(* Returns: 
f[0], f[1], f[2], f[3], f[4], f[5], f[6]
*)