我想通過使用Matlab編碼器將Matlab項目轉換爲C++。我在代碼中有幾個地方使用了num2str
函數。但是,當試圖使用Matlab編碼器來構建項目時,出現以下錯誤。不支持Matlab編碼器num2str
「函數'num2str'不支持獨立代碼生成。」
我在需要爲結構創建字段標識符的情況下使用了這個函數。
如:
for i=1:numel(bvec)
fId = ['L', num2str(i)];
tmp = mystruct.(fId);
% do some work here
end
是否有功能num2str
替代對我來說,能夠轉換項目?
@excaza那不是支持,[一覽支持的功能](http://www.mathworks.co.uk/help/simulink/ug/functions-supported-for-code-generation-alphabetical-list.html),['fprintf'](http:// www.mathworks.co.uk/help/matlab/ref/fprintf.html)被支持,有很多的限制... – RTL 2014-08-27 12:36:13
那麼,約束並不是那麼出乎意料。該函數的行爲更像c而不是matlab,所以在大多數情況下,一個c調用應該能夠做到這一點。 – patrik 2014-08-27 13:04:28
你能把它轉換成你認爲對應的unicode值嗎?你將能夠施放它。這有點繞道,但至少應該起作用。這個問題不是很困難,你可以在矢量中有一個unicode字符列表。例如,在相應的位置設置相應的值,以便調用'uniVec(3)'將返回3的unicode值。你也必須以某種方式處理超過1位數字的情況。 – patrik 2014-08-27 13:19:57