0
私は、次のコード(MATLAB R2015a
)を持つ関数からMEXをコンパイルする:MATLABコード生成で関数ハンドルの関数シグネチャを指定する方法は?
function r = MyFunc(x,type)
ind = randi(numel(x), 1);
getInd = @getIndFixed;
if strcmpi(type, 'random')
ind = numel(x);
getInd = @getIndRandom; % error here
end
x(getInd(ind)) = 1;
end
function k = getIndFixed(n)
k = n;
end
function k = getIndRandom(n)
k = randi(n, 1);
end
私は上記の指定された行でgetIndFixed
とgetIndRandom
間type mismatch
エラーが出る:
型の不一致を:function_handle getIndFixed〜= getIndRandom。
- この問題を回避する方法はありますか?
- たとえば、両方の関数のシグネチャが同じであることを指定する方法はありますか?
Cでは、関数のシグネチャは次のようになります。これらは、コード生成に割り当てられた後
int (*getInd)(int);
int getIndFixed(int);
int getIndRandom(int);
//...
getInd = getIndFixed;
getInd = getIndRandom;