【问题标题】:How to concatenate strings in a cell array in matlab如何在matlab中连接单元格数组中的字符串
【发布时间】:2017-05-03 12:21:38
【问题描述】:

我正在尝试在 matlab 中使用 repmat 连接元胞数组中的字符串。

我想做的是这样的:

aa={'xx','yy',repmat({'zz'},1,3)}

结果相当于:

aa={'xx','yy','zz','zz','zz'}

但结果却是:

{'xx','yy', {1x3 cell array} }

我意识到,如果我有一个变量,例如 C=repmat('zz',1,3),那么我可以这样做

aa{'xx','yy',C{:}}

但问题是我不想定义任何其他变量,例如 C。如果可能的话,我想在线执行此操作。有任何想法吗?

【问题讨论】:

    标签: arrays matlab concatenation cell


    【解决方案1】:

    使用向量连接:

    aa=[{'xx','yy'},repmat({'zz'},1,3)]
    
    aa = 
        1×5 cell array
    
         'xx'    'yy'    'zz'    'zz'    'zz' 
    

    【讨论】:

    • 好。这行得通,但是有没有办法用 repmat 上的函数来做到这一点?我希望的是一个函数,它接受一个单元格数组并将其转换为一个逗号分隔的列表,即重现 C{:} 行为。例如:colonoperator(repmat({'zz'},1,3)) 输出一个逗号分隔的列表。
    • @BenBarrowes 你真的不能。为什么反对临时变量?
    • reshape([{'xx','yy'},repmat({'zz'},1,3)],[],1) 对你有用吗?
    • 我尝试使用 subsref 从单元格数组中获取逗号分隔列表,但这似乎不适用于单元格,尽管它适用于数字数组:groups.google.com/forum/#!topic/comp.soft-sys.matlab/…user2999345 你的建议也有效,但我希望有一个函数可以在元胞数组上运行以生成逗号分隔的列表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2014-03-22
    • 2012-10-12
    • 1970-01-01
    • 2019-05-24
    • 2015-10-18
    相关资源
    最近更新 更多