首页 文章

Matlab函数作为Simulink块

提问于
浏览
1

我试着在Simulink中编写一个Matlab函数 . 我的第一个功能是这样的:

function y = fcn(u, v)
coder.extrinsic('detectSURFFeatures');
boxPoints = detectSURFFeatures(u);
%scenePoints = detectSURFFeatures(v);
vBoxPoints = boxPoints.selectStrongest(100);
y = 0;
y = vBoxPoints;

但我看到错误:1 . 尝试从'mxArray'中提取字段'selectStrongest' . 2.未定义的函数或变量'vBoxPoints' . 对局部变量的第一次赋值决定了它的类 . 3.端口宽度或尺寸错误 . 'detecting_cross / MATLAB Function / v'的输出端口1是[400x239]矩阵 . 请帮忙 .

1 回答

  • 4

    从外部函数返回的数据是mxArray类型 . 如果要从这些mxArrays中获取值,则需要预先声明它们,以便外部函数的结果可以自动转换为该类型 . 你可以使用类似的东西

    boxPoints = struct('selectStrongest',zeros(100,1));
    

    在调用detectSUTFFeatures之前 . 如果mxArray与函数中的mxArray不匹配,则会出现运行时错误 . 您的错误2和3是由于第一个问题 .

相关问题