У меня есть функция, скажем sq_dist()
. Эту функцию можно назвать так: sq_dist(a,b)
или sq_dist(a)
. Эта функция включает в себя медленные операции, и поэтому я пытаюсь сделать версию Mex, надеясь, что она будет работать быстрее. Я использую GUI Matlab Coder для этого. Чтобы определить типы ввода (на экране ввода определений), я использую функцию, которая вызывает sq_dist(a,b)
и sq_dist (a
) для автоматического определения ввода. Это дает мне ошибку: Error determining type for input sq_dist:b. Index exceeds matrix dimensions
. Вот моя функция:Как определить типы ввода в Matlab Coder для функции, которая имеет различное количество входных данных?
n = 50;
dim = 50;
a = rand(n, dim);
b = rand(n, dim);
u = sq_dist(a, b);
v = sq_dist(a);
Таким образом, поскольку sq_dist можно назвать по-разному, я не знаю, как определить свой вклад в Coder.
Если я вручную установить вход в double :inf x :inf
для a
и b
файл MEX компилируется, но я получаю сообщение об ошибке выполнения: Function 'sq_dist' called with wrong number of arguments: expected 2, received 1.