MALAB Coder - Статический размер строки в sprintf - PullRequest
0 голосов
/ 07 марта 2019

Как я могу запретить 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 голосов
/ 09 марта 2019

Я только что снова проверил следующее.Он работает хорошо, а также может быть использован для большего количества цифр, и он не использует вещи разного размера.

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

Кроме того, они могут быть использованы, если мы уверены, что я одна цифра:

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