c – 如何在运行时创建一个mex函数printf?
发布时间:2020-12-16 10:35:05 所属栏目:百科 来源:网络整理
导读:我有一个在我的MATLAB脚本中调用的mex文件. mex函数可能需要一段时间才能运行,因此为了防止我的代码“在没有任何输出的情况下停在那里”,我在mex文件中放入了许多printf语句来输出有关正在处理的数据的一些运行信息. 但是当我调用mex函数时,它不会打印任何东
我有一个在我的MATLAB脚本中调用的mex文件. mex函数可能需要一段时间才能运行,因此为了防止我的代码“在没有任何输出的情况下停在那里”,我在mex文件中放入了许多printf语句来输出有关正在处理的数据的一些运行信息.
但是当我调用mex函数时,它不会打印任何东西并在int运行期间保持不变.最后,在完成其工作后,它将打印出我想要的所有信息 – 不是在运行时,而是在完成之后.这不是我想要的. 所以我想知道如何不仅使printf成为我想要的东西,而且在我想要的时候也知道printf. 解决方法
是的,mexPrintf就是您所需要的.但请注意,命令窗口不会强制刷新它使用的缓冲区,通常会在打印消息之前导致很长的延迟.如果在调用mexPrintf后开始繁重的计算,就会发生这种情况.
解决方法是使用 mexEvalString("drawnow;") 每次打电话给mexPrintf后. 如果您发现没有吸引力,可以创建一个调用两者的宏: #define printfFnc(...) { mexPrintf(__VA_ARGS__); mexEvalString("drawnow;");} 这使用了可变参数宏__VA_ARGS__.它可能不是标准的一部分,但似乎是在GCC和Visual C中.只需调用printfFnc,就像调用printf(或mexPrintf)一样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 错误:XMLHttpRequest cannot load file
- c# – 如何增加start run命令行的大小以增加目标
- 快速,可选展开,如果条件可逆
- c# – XamlParseException:无法加载文件或程序集“Resourc
- nor flash启动与nand flash启动的区别
- Dictionary如何在Swift中使用Equatable协议?
- 如何在C#中处理组合类
- ruby-on-rails – Rails 3.2.3与spork在黄瓜测试中不能识别
- ruby-on-rails – 在Rails资源管道(application.js)中排除*
- Flutter TextField值始终为大写和去抖动
推荐文章
站长推荐
热点阅读