【问题标题】:Matlab: Append unique strings into one cell with comma seperationMatlab:用逗号分隔将唯一字符串附加到一个单元格中
【发布时间】:2017-03-24 11:18:00
【问题描述】:

我的输入是 N 个不同长度的唯一字符串,存储在一个结构中,例如

A.data{1} = {'The cat has'}
A.data{2} = {'green eyes'}

使得 A.data 为 Nx1。

所需的输出是一个 1,1 单元格,其中所有唯一字符串彼此跟随并用逗号分隔。

output = ['The cat has' ', ' 'green eyes']

产生The cat has, green eyes,这正是我想要的 N 个字符串。

有什么想法吗?

谢谢!

【问题讨论】:

    标签: string matlab loops append concat


    【解决方案1】:

    使用strjoin:

    A.data{1} = 'The cat has';
    A.data{2} = 'green eyes';
    result = strjoin(A.data, ', ');
    

    给予

    result =
    The cat has, green eyes
    

    如果数据有额外的嵌套级别:

    A.data{1} = {'The cat has'}
    A.data{2} = {'green eyes'};
    

    你需要摆脱它

    B = cellfun(@(x) x, A.data);
    

    在致电strjoin之前:​​

    result = strjoin(B, ', ');
    

    【讨论】:

    • 感谢您的回答。奇怪的是,我在自己的数据上收到一条错误消息:“第一个输入必须是字符数组的元胞数组”。尽管whos 返回单元格作为类型。我的具体数据看起来像"/dir/file1.extention,1", " /dir/file1.extention,2" ..." /dir/file1.extention,N."
    • 你能用一个重现问题的变量来编辑问题吗?
    • 嗨路易斯。我已经编辑了这个问题,以便它重现错误。我注意到我的数据是'The cat has' 而不是The cat has。这样数据就写在大括号`{}'中。
    猜你喜欢
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多