【问题标题】:Can I use mathematica's StringReplace to write the row number of a text file?我可以使用mathematica String Replace 来写入文本文件的行号吗?
【发布时间】:2020-05-21 04:12:47
【问题描述】:

我有一个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.lammdam.phi 行数。如果文件有三行,我需要m.lammda1m.phi1m.lammda2m.phi2m.lammda3m.phi3testOutputX.txt的每一行中

我的想法是使用 for 循环,对savedX 的每一行进行充电,然后进行字符串替换,其中用于计数循环的变量的值以文本形式写入StringReplace

我已经构建了一个 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]

然而,我查看了StringReplacedocumentation,但我无法找到如何编写i 的值,这个for 循环中使用的变量。

有没有办法做到这一点?

【问题讨论】:

    标签: string for-loop text replace wolfram-mathematica


    【解决方案1】:

    这应该可以解决问题。

    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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      相关资源
      最近更新 更多