【问题标题】:Why does fprintf command display >> in MATLAB?为什么 fprintf 命令在 MATLAB 中显示 >>?
【发布时间】:2015-02-08 03:33:32
【问题描述】:

这是 MATLAB 中的随机脚本示例。

prompt = 'Please enter a lowercase x:  ';
str = input(prompt, 's');
if str == 'x'
else
    fprintf('Error, you did not enter a lowercase x.')
end

这始终显示我在 fprintf 命令中的内容,并在命令窗口的末尾带有 >>。例如,在这个随机上下文中,它会显示 ...

Error, you did not enter a lowercase x.>>

简单的问题,但我是 MATLAB 新手。为什么我在每个 fprintf 命令的末尾都有一个 >>?好像没看懂。

【问题讨论】:

  • 添加到已经发布的答案:请注意if str == 'x' 可能没有达到您的预期。如果您输入例如xx,它将运行fprintf 语句。那是因为str == 'x' 比较元素方面,而if 条件被认为是true,如果所有 其组件都是true。见here
  • 为了进一步补充答案,如果您将2 指定为fprintf 输出方向,您的消息将被写成红色。例如:fprintf(2,'Error: bla bla bla ...\n')

标签: matlab printf


【解决方案1】:

您没有在字符串中指定换行符,因此fprintf 将文本推送到命令窗口并在文本之后直接生成另一个输入提示(>>)。将换行元字符添加到字符串 (\n) 以解决问题:

fprintf('Error, you did not enter a lowercase x.\n')

另外,如果您的目标是发出错误,您应该使用error 函数。它会停止执行代码并将消息涂成红色,就像其他 MATLAB 错误一样。

【讨论】:

  • 就是这样。我现在看到代码是如何读取的。我只是使用上面的代码作为随机代码来显示我的问题。谢谢!
  • @amkas90 如果您发现任何问题有帮助,请投票,如果您提出问题,accept 一个答案“写得很好,建议一个好的做法并且适用于你。”
  • 谢谢。我会赞成,但是,我也知道stackoverflow。需要 15 个声望点才能投票。很快就会这样做。
【解决方案2】:

这里fprintf 只是显示文本并返回到命令控制台。

使用换行符'\n' 字符,

fprintf('Error, you did not enter a lowercase x.\n');
%                                               ~~~

>> 提示返回换行符

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 2021-06-30
    • 2018-10-09
    • 2019-11-23
    • 1970-01-01
    • 2020-03-21
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多