【发布时间】:2016-04-11 21:27:13
【问题描述】:
我正在尝试使用 Matlab 编码器将 Matlab 项目转换为 C++。我的代码中很少有使用num2str 函数的地方。但是在尝试使用 Matlab 编码器构建项目时,出现以下错误。
“独立代码生成不支持函数‘num2str’。”
我在需要为结构创建字段标识符的情况下使用了这个函数。
例如:
for i=1:numel(bvec)
fId = ['L', num2str(i)];
tmp = mystruct.(fId);
% do some work here
end
是否有替代函数 num2str 让我能够转换项目?
【问题讨论】:
-
@excaza 不支持,List of supported functions,
fprintf支持,有很多限制... -
好吧,约束并不是那么出乎意料。该函数的行为更像 c 而不是 matlab,因此在大多数情况下,c 调用应该可以解决问题。
-
你能把它转换成你认为的对应的unicode值吗?你将能够投射它。这有点绕道,但它至少应该有效。不过,这个问题并不难,你可以在一个向量中有一个 unicode 字符列表。在正确的位置设置相应的值,以便调用
uniVec(3)将返回例如 3 的 unicode 值。此外,您还必须以某种方式处理超过 1 位数字的情况。 -
你有一个更大的问题,那就是 MATLAB Coder 也不支持动态字段名称。