String Matlab编码器-strcat函数的替代方案
目前matlab编码器不支持strcat或strjoin。是否有任何方法可以绕过此功能或自定义功能 编辑: 输入=[a b c d]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 >>
预期输出='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 Forstrcat
它取决于输入。考虑<代码> STRCAT({‘红色’,‘黄色’},‘绿色’,‘蓝色’})/<代码>,它给出<代码> 'ReGrand '''黄蓝色' < /Calp>。您的解决方案允许在不使用<代码> StRouth< /C>的情况下连接字符串,但不幸的是,编码器也不允许<代码> SaveFTF < /代码>。编码器不允许<代码> CyFoos(至少在2015B,我可以测试)所以这个选项也是空的。。。