gpt4 book ai didi

c++ - 不支持 Matlab 编码器 num2str

转载 作者:搜寻专家 更新时间:2023-10-31 00:34:44 24 4
gpt4 key购买 nike

我正在尝试使用 Matlab 编码器将 Matlab 项目转换为 C++。我的代码中很少有地方使用 num2str 函数。但是当尝试使用 Matlab coder 构建项目时,出现以下错误。

"The function 'num2str' is not supported for standalone code generation."

我在需要为结构创建字段标识符的情况下使用了这个函数。

例如:

for i=1:numel(bvec)
fId = ['L', num2str(i)];
tmp = mystruct.(fId);
% do some work here
end

是否有函数 num2str 的替代方法让我能够转换项目?

最佳答案

使用 sprintf 会很容易,但我不确定您是否可以使用它?

fId = sprintf('L%d', i);

如果 numel(bvec) 在 0 到 9 范围内,您可以使用 char:

fId = ['L', char(48+i)];

或者您可以创建自己的数字到字符串转换函数。可能有更好的方法,但这里有一个想法:

function s = convertnum(n)
if n > 9
s = [convertnum(floor(n/10)), char(48+mod(n,10))];
else
s = char(48+n);
end
end

然后像这样使用它:

fId = ['L', convertnum(i)];

编辑

另一种基于评论的转换函数:

function s = convertnum(n)
s = [];
while n > 0
d = mod(n,10);
s = [char(48+d), s];
n = (n-d)/10;
end
end

关于c++ - 不支持 Matlab 编码器 num2str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25527248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com