我在 Mathematica 中打印数据时遇到一个问题。例如,如果行太长
S=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
我想在表格中先打印 S 五个空格,然后输入“#”,然后是 S 的 66 个空格,然后输入,下一个顺序相同。此表格必须在 WordPad 中打开,如下所示
"5 spaces empty"#1111111111"(66times)"111111
"5 spaces empty"#1111111111"(66times)"111111
.....
最好的祝愿,
答案1
您可以使用以下代码:
In[58]:=
S=1111111111111111111111111111111111111111111111111111111111111111111111111111\
111111111111111111111111111111111111111111111111111111111111111111111111111111\
111111111111111111111111111111111111111111111111111111111111111111111111111111\
111111111111111111111111111111111111111111111111111111111111111111111111111111\
1111111111111111111111111111111111111111111111111111;
StringPartition[s_,l_]:=Table[StringTake[s,{i,Min[i+l-1,
StringLength[s]]}],{i,1,StringLength[s],l}];
fmts=Map[(" #"<>#<>"\r")&,StringPartition[ToString[S],66]];
(* Unfortunately the web software is ruining the formatting of the output, deleting the extra spaces I placed before the #, etc. *)
(* But if you fix all the things this web software broke when I pasted your result and then run this and check the output carefully you should see it is correct *)
FullForm[fmts]
Out[61]//FullForm=
List[
" #111111111111111111111111111111111111111111111111111111111111111111\r",
" #111111111111111111111111111111111111111111111111111111111111111111\r",
" #111111111111111111111111111111111111111111111111111111111111111111\r",
" #111111111111111111111111111111111111111111111111111111111111111111\r",
" #111111111111111111111111111111111111111111111111111111111111111111\r",
" #11111111111111111111111111111111\r"
]