【发布时间】:2016-04-28 14:47:38
【问题描述】:
我有一个函数,比如说sq_dist()。这个函数可以这样调用sq_dist(a,b) 或sq_dist(a)。此功能包括缓慢的操作,因此我正在尝试制作它的 Mex 版本,希望它运行得更快。我正在使用 Matlab Coder GUI 来执行此操作。为了定义输入类型(在定义输入屏幕中),我使用了一个调用 sq_dist(a,b) 和 sq_dist(a) 的函数来自动确定输入。这给了我一个错误:Error determining type for input sq_dist:b. Index exceeds matrix dimensions。这是我的功能:
n = 50;
dim = 50;
a = rand(n, dim);
b = rand(n, dim);
u = sq_dist(a, b);
v = sq_dist(a);
所以,由于 sq_dist 可以以不同的方式调用,我不确定如何在编码器中定义它的输入。
如果我为a 和b 手动将输入设置为double :inf x :inf,则会编译mex 文件,但出现运行时错误:Function 'sq_dist' called with wrong number of arguments: expected 2, received 1.
【问题讨论】:
标签: c matlab compilation mex matlab-coder