這很棘手。 一旦在Mathematica中導出數據的路徑在引號之下,我如何將一個變量作爲路徑的一部分插入?換句話說,我在一個增加VAL的循環中,並希望將MyData導出到VAL.dat。想法?Mathematica:導出到可變路徑
僞代碼: 出口【「〜/文檔/ VAL」,邁德特]
這很棘手。 一旦在Mathematica中導出數據的路徑在引號之下,我如何將一個變量作爲路徑的一部分插入?換句話說,我在一個增加VAL的循環中,並希望將MyData導出到VAL.dat。想法?Mathematica:導出到可變路徑
僞代碼: 出口【「〜/文檔/ VAL」,邁德特]
如何你的電話號碼轉換爲字符串,並與路徑加入它:
"~/Documents/"<>ToString[VAL]
很好。它適用於如果您也在val後追加擴展名。我從mathematica開始!謝謝 – PFD 2011-05-15 06:41:52
在直接回答你的問題,你可以使用StringReplace
:
Table[
StringReplace[
"~/Documents/#.dat",
"#" :> IntegerString[VAL, 10, 4]],
{VAL, 27, 29}
]
{"~/Documents/0027.dat", "~/Documents/0028.dat", "~/Documents/0029.dat"}
「#」 是arbitr被選作佔位符。還可以使用另一個字符或字符串。
該OP指出該數字是在VAL ... – 2011-05-15 09:18:46
除了霍華德和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 - 我非常贊同使用FileNameJoin,FileNameSplit和朋友的建議。無論您是否爲自己編寫程序,編寫可移植代碼都是必不可少的,因爲您永遠都不知道您的代碼在某些時候會被其他人使用。 – 2011-05-15 13:40:35
歡迎來到StackOverflow – 2011-05-15 06:54:22