MALAB Coder-sprintf中的静态大小字符串

时间:2019-03-07 18:30:58

标签: string matlab char printf matlab-coder

如何防止MATLAB Coder为将简单数字插入字符串生成可变大小的代码?

for i=1:4

    name=sprintf('Data%d.bin',int8(i));
    stuff(name);
end

在生成的C代码中,它使用诸如emxutil之类的许多函数来确定sprtintf生成的字符串的大小。 我只想说我只有一位数。我怎样才能做到这一点?! 以下内容也不起作用

name=['Data',char(i),'.bin'];

使用以下内容也会产生错误,导致生成LHS大小固定但RHS变化的代码:

coder.varsize('name',[1,14],[0,0])

1 个答案:

答案 0 :(得分:0)

我再次测试了以下内容。它效果很好,也可以用于更多数字,并且不使用var size的东西。

name=['Data',int2str(i),'.bin'];

此外,如果我们确定我是一位数字,也可以使用这些字符:

['Data' char(48+i) '.bin']
['Data' char('0'+i) '.bin']