你真的不能那样做。Octave 并不是真的那样工作。
但是,您可以做的是准备好 sprintf 生成的字符串,您可以将其插入到您的输出中。例如
var1 = 123; % double
var2 = 'abc'; % char
var3 = cell(); % cell
Var = var2; % choose from var1, var2, or var3
switch class(Var)
case {'double'}, FormattedStr = sprintf('Value is %d', Var);
case {'char'} , FormattedStr = sprintf('Value is %s', Var);
case {'cell'} , % ... etc
otherwise , FormattedStr = sprintf('Value is unknown');
end
fprintf( 'As I said before: %s', FormattedStr);
或者,您可以创建一个“toString”函数来尝试检测类型并返回适当的字符串表示形式。
如果您真的想使用 disp 的输出,那么理论上您可以使用fdisp
写入文件,然后从该文件中读回并相应地处理换行符。但我认为这是矫枉过正。