Mathematica:导出到可变路径

时间:2011-05-15 06:33:20

标签: variables loops wolfram-mathematica quotes

这很棘手。 一旦在Mathematica中导出数据的路径在引号下,我如何插入变量作为路径的一部分?换句话说,我在一个循环中,增加VAL并想要将MyData导出到VAL.dat。想法?

伪代码: 导出[“〜/ Documents / VAL”,MyData]

3 个答案:

答案 0 :(得分:13)

除了Howard和Mr.Wizard的答案,我可以说,查找FileNameJoin以获得一个很好的,独立于系统的方法来组成路径字符串和IntegerString你可以使用它会很好将整数转换为具有固定位数的字符串,使您的文件排序更好:

In[33]:= VAL = 32;
IntegerString[VAL, 10, 4]

Out[34]= "0032"

我通常不太需要跨操作系统兼容性(主要是为自己编程),所以我的惯用风格就像是

Export["directoryPart\\FixedFileNamePart"<>IntegerString[VAL, 10, 4]<>".dat","TSV"]

如果扩展名不清楚,请将“TSV”替换为您需要的文件类型。请注意我在Windows上,它使用反斜杠作为分隔符。由于这也是转义字符,因此必须使用反斜杠进行转义;这解释了双反斜杠。你似乎是在UNIX派生上,所以没有必要。这确实显示了FileNameJoin的值,它会自动处理这些细节。

答案 1 :(得分:4)

如何将您的号码转换为字符串并将其与路径连接:

"~/Documents/"<>ToString[VAL]

答案 2 :(得分:1)

直接回答您的问题,您可以使用StringReplace

Table[
  StringReplace[
     "~/Documents/#.dat", 
     "#" :> IntegerString[VAL, 10, 4]],
  {VAL, 27, 29}
]
   {"~/Documents/0027.dat", "~/Documents/0028.dat", "~/Documents/0029.dat"}

“#”被任意选为占位符。也可以使用另一个字符或字符串。