繁体   English   中英

Matlab编码器-具有“字符开关”的功能

[英]matlab coder - function with 'char switch'

是这样的:

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表达式的大小不确定。

由于C / C ++的“字符数组”必须为静态大小,因此我认为以上操作是不可能的,或者可以解决吗?

尝试使用if - elseif语句而不是switch语句。

if strcmp(m, 'xyz')
  rv = 1;
elseif strcmp(m, 'xyz1')
  rv = 2;
else
  error('unexpected');
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM