首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab strcat函数的替代方案

Matlab strcat函数的替代方案
EN

Stack Overflow用户
提问于 2014-04-11 18:56:32
回答 1查看 2.6K关注 0票数 3

目前matlab编码器不支持strcatstrjoin。是否有任何规避此或自定义功能的方法?

编辑: Input= a b c d期望output= 'a,b,c,d‘

EN

回答 1

Stack Overflow用户

发布于 2014-04-11 19:49:42

对于strjoin来说,你可以不受sprintf的影响

代码语言:javascript
复制
>> 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

代码语言:javascript
复制
>> c = [colorCell(:) repmat({','},numel(colorCell),1)].';
>> colorList = [c{:}]; colorList(end)=[]

对于strcat,简单的使用通常等同于使用[]

代码语言:javascript
复制
>> strcat(colorCell{:})
ans =
RedYellowGreenBlue
>> [colorCell{:}]
ans =
RedYellowGreenBlue

然而,对于更复杂的语法,它并没有那么简单:

代码语言:javascript
复制
>> strcat({'Red','Yellow'},{'Green','Blue'})
ans = 
    'RedGreen'    'YellowBlue'

您是否需要解决此问题的解决方案?也许有以下几点:

代码语言:javascript
复制
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)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23020542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档