【发布时间】:2018-02-12 14:21:23
【问题描述】:
我使用 Matlab coder 将 .m 文件转换为 .cpp 文件。
但是构建错误告诉我:
可变大小元胞数组不支持通过以下方式生成代码 细胞功能。
我已经在以下站点引用了该方法: https://www.mathworks.com/help/simulink/ug/cell-array-restrictions-for-code-generation.html#bvczero
但它不起作用。
这是我的代码:
--------------------------------------------------
dets = mycell(n, 1);
...
%--------------------------------
function z = mycell(n,m)
%--------------------------------
%#codegen
assert(n < 100);
assert(m < 100);
x = cell(n,m);
for i = 1:n
for j = 1:m
x{i,j} = i+j;
end
end
z = x{m,n};
这段代码有问题吗?
【问题讨论】:
-
请将代码格式化为代码。
-
会不会是因为你没有在
end关键字后面加上z = x{m,n};结束函数? -
你试过
coder.nullcopy吗? mathworks.com/help/simulink/ug/… -
另外,您使用的是最新版本的 MATLAB 吗?如果不是,您正在阅读的文档与您的软件不匹配...
-
我正在使用 Matlab 2017a,您帖子中提到的代码对我来说很好。因此,即使此代码也不适合您,建议升级到较新版本。 @JasonZhengspan>