Inconsistent behaviour in fprintf output (scripts and LiveScripts)?
显示 更早的评论
The output from fprintf seems to be inconsistent when called from within a livescript. The interpreter seems to be adding extra newlines after each call.
For example take the following code:
K = 10;
for k=1:K
fprintf('Count: %d',k);
if k < K
fprintf(', '); %Add a comma for all but the last number
end
end
fprintf('\n')
If you execute this code in a standard script, the output is formatted correctly:
Count: 1, Count: 2, Count: 3, Count: 4, Count: 5, Count: 6, Count: 7, Count: 8, Count: 9, Count: 10
If executed in a LiveScript, the output looks much different:
Count: 1
,
Count: 2
,
Count: 3
,
Count: 4
,
etc.
Is there a way to supress these extra newlines? Is this intended behaviour? Is there an elegant way of getting around this? (I could assemble the output string, before calling fprintf, but that seems cumbersome)
采纳的回答
更多回答(1 个)
Ramnarayan Krishnamurthy
2021-3-24
To get the same output for this example as in the command window, one possible approach is to wrap your code inside a function. Here is an example live script:
test(10)
function test(K)
% your code here
for k=1:K
fprintf('Count: %d',k);
if k < K
fprintf(","); %Add a comma for all but the last number
end
end
fprintf('\n')
end
HTH
类别
在 帮助中心 和 File Exchange 中查找有关 MATLAB Report Generator 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!