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

MALAB Coder - Static size string in sprintf

如何防止 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])

我刚刚再次测试了以下内容。它工作得很好,也可以用于更多的数字,而且它不使用 var size 东西。

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

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

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