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