目前 matlab 编码器不支持strcat
or strjoin
。有什么办法可以规避这个或自定义功能吗?
编辑:输入 = [abcd] 预期输出 = 'a,b,c,d'
目前 matlab 编码器不支持strcat
or strjoin
。有什么办法可以规避这个或自定义功能吗?
编辑:输入 = [abcd] 预期输出 = '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
如果你不能使用spintf
:
>> 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)