我可以使用 Mathematica 的 StringReplace 来写入文本文件的行号吗?
Can I use mathematica's StringReplace to write the row number of a text file?
我有一个 mathematica 程序,它的输出是一个文本文件,由于某些原因将在 python 中用作输入。
savedXText = ExportString[savedX, "Text"];
savedXText2 =
StringReplace[
savedXText, {"[" -> "(", "]" -> ")",
"t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}];
Export["testOutputX.txt", savedXText2];
testOutputX.txt
有许多行可以变化。我需要写的不仅仅是 m.lammda
和 m.phi
行数。如果文件有三行,我需要 m.lammda1
and m.phi1
, m.lammda2
and m.phi2
and m.lammda3
and m.phi3
in each row of testOutputX.txt
我的想法是使用for循环,对savedX
的每一行进行充电,然后进行字符串替换,其中用于循环计数的变量值以文本形式写入[=23] =].
我构建了一个 for 循环,它选择 savedX
的每一行并执行 StringReplace
savedXReplaced = Table[RandomInteger[i, lengthLoop], {i, 1, lengthLoop}];
For[i = 1, i < lengthLoop + 1, i++,
savedXTextTemp = ExportString[savedX[[i]], "Text"];
savedXTextTemp2 =
StringReplace[
savedXTextTemp, {"[" -> "(", "]" -> ")",
"t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}];
Print[savedXTextTemp2]; savedXReplaced[[i]] = savedXTextTemp2]
然而,我已经查看了 StringReplace
的 documentation,但我无法找到如何写入 i
的值,这个 for 循环中使用的变量.
有办法吗?
这应该可以解决问题。
For[i = 1, i < lengthLoop + 1, i++,
savedXTextTemp = ExportString[savedX[[i]], "Text"];
savedXTextTemp2 = StringReplace[
savedXTextTemp, {"[" -> "(", "]" -> ")",
"t" -> StringJoin["m.lammda", ToString[i], "*180/np.pi"],
"u" -> StringJoin["m.phi", ToString[i], "*180/np.pi"]}];
Print[savedXTextTemp2]; savedXReplaced[[i]] = savedXTextTemp2]
我有一个 mathematica 程序,它的输出是一个文本文件,由于某些原因将在 python 中用作输入。
savedXText = ExportString[savedX, "Text"];
savedXText2 =
StringReplace[
savedXText, {"[" -> "(", "]" -> ")",
"t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}];
Export["testOutputX.txt", savedXText2];
testOutputX.txt
有许多行可以变化。我需要写的不仅仅是 m.lammda
和 m.phi
行数。如果文件有三行,我需要 m.lammda1
and m.phi1
, m.lammda2
and m.phi2
and m.lammda3
and m.phi3
in each row of testOutputX.txt
我的想法是使用for循环,对savedX
的每一行进行充电,然后进行字符串替换,其中用于循环计数的变量值以文本形式写入[=23] =].
我构建了一个 for 循环,它选择 savedX
的每一行并执行 StringReplace
savedXReplaced = Table[RandomInteger[i, lengthLoop], {i, 1, lengthLoop}];
For[i = 1, i < lengthLoop + 1, i++,
savedXTextTemp = ExportString[savedX[[i]], "Text"];
savedXTextTemp2 =
StringReplace[
savedXTextTemp, {"[" -> "(", "]" -> ")",
"t" -> "m.lammda[i]*180/np.pi", "u" -> "m.phi[i]*180/np.pi"}];
Print[savedXTextTemp2]; savedXReplaced[[i]] = savedXTextTemp2]
然而,我已经查看了 StringReplace
的 documentation,但我无法找到如何写入 i
的值,这个 for 循环中使用的变量.
有办法吗?
这应该可以解决问题。
For[i = 1, i < lengthLoop + 1, i++,
savedXTextTemp = ExportString[savedX[[i]], "Text"];
savedXTextTemp2 = StringReplace[
savedXTextTemp, {"[" -> "(", "]" -> ")",
"t" -> StringJoin["m.lammda", ToString[i], "*180/np.pi"],
"u" -> StringJoin["m.phi", ToString[i], "*180/np.pi"]}];
Print[savedXTextTemp2]; savedXReplaced[[i]] = savedXTextTemp2]