如何替换Matlab编码器错误的非标度结构?

9个视图(过去30天)
WanYu
WanYu 2020年5月7日
评论: 大卫·芬克 2020年5月11日
你好
当我试图将我的Matlab代码转换为C时,出现了这个错误,但我不知道如何修改它,因为这在我的函数中是必要的。
%%移除小物体。
binaryImage=imclearborder(binaryImage);
binaryImage=BWAREOPEN(binaryImage,100);
%%反转二值化图像
%binaryImage=~binaryImage;
%%获取图像的质心
stats=区域属性(二进制图像,“质心”);%对清理后的图像执行操作
质心=类别(1,统计质心);
x1=质心(1,1);
y1=质心(1,2);
x3=质心(3,1);
y3=质心(3,2);
错误“直接访问代码生成不支持的非标量结构或对象的字段或属性”显示在金宝app
质心=类别(1,统计质心);
我如何解决它,因为这是我的职能所必需的。

公认的答案

大卫·芬克
大卫·芬克 2020年5月8日
质心=类别(1,统计质心);
只是在第一个维度(垂直)中连接质心行向量,可以用循环替换:
numRegions =元素个数(统计);
质心=零(numRegions,numel(stats(1.Centroid));%预初始化以设置大小
对于region=1:numRegions
质心(区域:)=stats(区域)。质心;%一次写一行
终止
我们希望在MATLAB Coder的未来版本中使用原始语法!
3评论
大卫·芬克
大卫·芬克 2020年5月11日
看起来调用入口点errored out的测试代码——“查看错误”应该给出详细信息。

登录以发表评论。

更多答案(0)

下载188bet金宝搏


释放

R2019b

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!