String Matlab编码器-strcat函数的替代方案

String Matlab编码器-strcat函数的替代方案,string,matlab,matlab-coder,codegen,String,Matlab,Matlab Coder,Codegen,目前matlab编码器不支持strcat或strjoin。是否有任何方法可以绕过此功能或自定义功能 编辑: 输入=[a b c d] 预期输出='a,b,c,d'对于strjoin您可能会逃脱sprintf: >> colorCell = [{'Red','Yellow'},{'Green','Blue'}]; >> colorList = strjoin(colorCell,',') colorList = Red,Yellow,Green,Blue >>

目前matlab编码器不支持strcat或strjoin。是否有任何方法可以绕过此功能或自定义功能

编辑: 输入=[a b c d]
预期输出='a,b,c,d'

对于
strjoin
您可能会逃脱
sprintf

>> colorCell = [{'Red','Yellow'},{'Green','Blue'}];
>> colorList = strjoin(colorCell,',')
colorList =
Red,Yellow,Green,Blue
>> colorList = sprintf('%s,',colorCell{:}); colorList(end)=[]
colorList =
Red,Yellow,Green,Blue
>> c = [colorCell(:) repmat({','},numel(colorCell),1)].';
>> colorList = [c{:}]; colorList(end)=[]
如果无法使用
spintf

>> colorCell = [{'Red','Yellow'},{'Green','Blue'}];
>> colorList = strjoin(colorCell,',')
colorList =
Red,Yellow,Green,Blue
>> colorList = sprintf('%s,',colorCell{:}); colorList(end)=[]
colorList =
Red,Yellow,Green,Blue
>> c = [colorCell(:) repmat({','},numel(colorCell),1)].';
>> colorList = [c{:}]; colorList(end)=[]

对于strcat,简单的用法通常相当于使用
[]

>> strcat(colorCell{:})
ans =
RedYellowGreenBlue
>> [colorCell{:}]
ans =
RedYellowGreenBlue
但是,对于更复杂的语法,它并没有那么简单:

>> strcat({'Red','Yellow'},{'Green','Blue'})
ans = 
    'RedGreen'    'YellowBlue'
您是否需要此用法的解决方案?或许有以下几点:

colorCell1 = {'Red','Yellow'}; colorCell2 = {'Green','Blue'};
colorCell12 = [colorCell1;colorCell2];
c = mat2cell(colorCell12,size(colorCell12,1),ones(size(colorCell12,2),1));
cellfun(@(x)[x{:}],c,'uni',0)

[
]
对于
strcat
?可能相关:strjoin的用法是什么?示例命令?@chappjc,strjoin还连接字符串
str=strjoin(C,分隔符)
@Daniel For
strcat
它取决于输入。考虑<代码> STRCAT({‘红色’,‘黄色’},‘绿色’,‘蓝色’})/<代码>,它给出<代码> 'ReGrand '''黄蓝色' < /Calp>。您的解决方案允许在不使用<代码> StRouth< /C>的情况下连接字符串,但不幸的是,编码器也不允许<代码> SaveFTF < /代码>。编码器不允许<代码> CyFoos(至少在2015B,我可以测试)所以这个选项也是空的。。。