В настоящее время я использую этот код:
assert(isa(values,'double'));
assert(size(values, 1) <= 1000);
убедить кодера Matlab сделать значения одномерным массивом. Конечная цель — иметь возможность взаимодействовать с ним через C# и PInvoke. Это создает подпись C, содержащую это:
const real_T values[1000], const int32_T values_size[1]
Кажется, я могу использовать это даже для одномерных массивов, длина которых меньше 1000. Существуют ли более аккуратные способы достижения вышеизложенного (т.е. утверждать, что значения представляют собой одномерный массив неограниченной длины)?
PS:
Я также использовал:
assert(all(size(values) == [1 Inf]));
но пока отложил это, поскольку созданная структура кажется очень сложной (см. Также здесь), и я делаю не знаю, как заполнить его из С#.
struct_emxArray_real_T
. Это объясняется здесь: mathworks.co.uk/help/fixedpoint/ug/ Если вы восстановили свой другой вопрос, я думаю, что могу ответить сейчас. Меня все время смущало то, что вы говорили о кодере Matlab. Я думал, это человек, твой коллега! - person David Heffernan   schedule 19.02.2013