此問題涉及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 - 有條件的地方