此问题涉及Matlab 编码器外部功能。一些功能如fprintf
在旧版Matlab中是外在的,在新版本中不是外在的。如果coder.extrinsics
只允许在最高级别,并且不可能将它放在if
声明中,是否有方法可以支持多个Matlab版本?有条件地使用coder.extrinsics
0
A
回答
2
你不能有条件地直接做一些外部函数。一种方法是使用两个不同的函数,如fprintf_old和fprintf_new。 fprintf_old会有coder.extrinsic声明,然后调用fprintf。 fprintf_new可以在不需要外部声明的情况下调用fprintf。现在你可以通过在编译期间检查你的版本,并在编译期间保持不变的情况下选择这两个调用。例如,
if coder.const(isOlderVersion())
fprintf_old();
else
fprintf_new();
end
1
在代码生成中,feval
constructs an extrinsic call指向第一个参数中指定的函数。既然你可以嵌入调用feval
控制流程的内部,它可以被用来选择性外在调用一个函数,并保持代码的单一源文件:
if isOlderVersion()
% Call fprintf extrinsically
feval('fprintf');
else
fprintf();
end
相关问题
- 1. 有条件地使用replace_na
- 2. 有条件地设置和有条件地使用变量python
- 3. 使用magrittr有条件地替换值
- 4. 有条件地使用update语句
- 5. 有条件地使用STUN服务器
- 6. jenkins有条件地使用NOT
- 7. 有条件地使用NHibernate获取
- 8. 有条件地使用OpenGL扩展
- 9. 有条件地使用indexOf函数
- 10. 有条件地使用angular2属性usehash
- 11. 有条件地使用WP8.1功能
- 12. OpenMP:有条件地使用#pragma
- 13. 有条件地应用CSS
- 14. 有条件调用函数有条件地调用函数
- 15. setting.gc_maxlifetime有条件地
- 16. 使用Mono.Addins当地条件
- 17. 有条件的地方或条件linqtosql
- 18. 有条件地添加条件
- 19. 有条件地加载用户控件
- 20. 有条件地呈现用户控件
- 21. 有没有办法使用Hibernate有条件地插入?
- 22. 有条件地填充GridView
- 23. 有条件地插入mysql
- 24. 有条件地将。取()
- 25. 有条件地将类
- 26. 有条件地重置row_number
- 27. 有条件地插入列
- 28. React.js renderDOM有条件地
- 29. 有条件地转换Json
- 30. MySQL - 有条件的地方