是这样的:
function [rv] = get_bla(m)
%#codegen
assert(isa(m,'char'));
assert(size(m, 1) >= 1);
assert(size(m, 1) <= 1024);
switch m
case 'xyz'
rv = 1;
case 'xyz1'
rv = 2;
otherwise
error('Unexpected something');
end
实际上可以在matlab编码器的上下文中使用吗?
我正在使用:
codegen -config:dll get_bla
并获得:
SWITCH表达式具有不确定的大小。
由于'char数组'必须是C / C ++的静态大小,我认为上面的内容是不可能的,还是有解决方法?
答案 0 :(得分:1)
尝试使用if
- elseif
语句而不是switch
语句。
if strcmp(m, 'xyz')
rv = 1;
elseif strcmp(m, 'xyz1')
rv = 2;
else
error('unexpected');
end