【发布时间】:2015-01-18 20:53:15
【问题描述】:
在一个 Matlab 脚本中,我调用了一个用户定义的函数(m-function)。我的函数在使用disp 和/或fprintf 调用将值打印到命令窗口时返回一个值。
在编写表达式或语句时,将; 放在其末尾以禁止打印。当表达式调用我的函数时,; 可以禁止打印返回值。但是,这不会影响被调用函数内的disp 输出。
我想在适当的时候消除函数的显示输出。 有没有办法确定函数调用是否在以; 结尾的表达式中进行?
【问题讨论】:
-
我找到了部分解决方法 - 使用
evalc函数调用我的函数。我稍后会详细说明。这种方法仍然没有回答问题。 -
你的函数在做什么内部输出?这只是为了实现返回值的显示吗?还是更像是日志记录或调试?你能给我们举个具体的例子吗?特别是,正在显示的内容不包含在函数返回的值中?
-
我认为向函数添加一个额外的输入参数来确定显示的内容是迄今为止最简单的选项,或者将所有显示输出保存为另一个函数输出,以便在运行函数后访问它如果你需要的话。
-
@AndrewJanke - 在这种特殊情况下,它只是返回值的格式化输出。但是,这对于问题的本质并不重要。
-
@David - 保存显示输出基本上是
evalc()正在做的事情。是的,一个额外的论点是最简单的,只要没有直接的方式来说明(在概念上类似于nargin/nargout)。
标签: matlab function expression