我需要使用octave .m文件作为包装来调用另一个commanline工具。在下面的一段代码中,它给了eroor in the line' Detector'。它在Matlab上运行得相当不错,但现在我需要为八度音程做。 Octave的文档并没有谈论多行sprintf。任何人都可以分享解决方案来处理这种情况。
%s =sprintf(...
s =sscanf(...
[...
' \n'...
' \n'...
'Detector { \n'...
' [Plane: a_x(%f,%f,%f) a_y(%f,%f,%f) center(%f,%f,%f)] \n'...
' x1=%f x2=%f nx=%d \n'...
' y1=%f y2=%f ny=%d \n'...
' n_x_sub=%d n_y_sub=%d \n'...
\n'...
' %s \n'...
'} \n'...
' \n'...
Beam \n'...
' start(%f,%f,%f) \n'...
' %s \n'...
' %s \n'...
' %s \n'...
'} \n'...
' \n'...
'Commands { \n'...
' no_noise \n'...
'} \n'...
],...
eu(1),eu(2),eu(3),...
ev(1),ev(2),ev(3),...
a(1)-d*ew(1),...
a(2)-d*ew(2),...
a(3)-d*ew(3),...
-(uoff+0.5)*par.du,...
(par.nu-uoff-0.5)*par.du,...
par.nu,...
-(voff+0.5)*par.dv,...
(par.nv-voff-0.5)*par.dv,...
par.nv,...
par.up,...
par.up,...
CT_scale,...
a(1),...
a(2),...
a(3),...
keV,...
kV,...
mAs);
答案 0 :(得分:0)
在GNU Octave中处理多行字符串有很多种可能性。将以下内容作为其中之一:
sprintf(" \
This is the first line\n \
and this is the second\n \
The square root of %d is %d\n \
", 4, 2)
\
字符是字符串断路器,只要您希望在下一个脚本行上继续字符串,就必须使用它。