【问题标题】:convert matrix to cell string with elements separated by delimiter将矩阵转换为单元格字符串,元素由分隔符分隔
【发布时间】:2015-01-22 15:09:11
【问题描述】:

如何转换矩阵

A=[1,2,3;4,5,6]

到一个字符串的单元格

A_str = {'1_2_3';'4_5_6'};

【问题讨论】:

  • 请在允许的情况下将您的答案作为答案发布(不要编辑问题)。

标签: string matlab matrix cells


【解决方案1】:

一种方法可能是这样 -

%// Input
A=[1,2,3;4,5,6] 

%// Make a cell array with each element a string off each element of A
cells = cellfun(@(x) num2str(x),num2cell(A),'Uni',0)

%// Join the cells with strjoin using `_` as the delimiter 
A_str = arrayfun(@(n) strjoin(cells(n,:),'_'),1:size(cells,1),'Uni',0).'

输出 -

A_str = 
    '1_2_3'
    '4_5_6'

【讨论】:

    【解决方案2】:

    发现这个解决方案似乎更快

    A=[1,2,3;4,5,6] 
    
    A_str = cell(size(A,1),1);
    for index_row = 1 : size(A,1)
        clear allOneString_temp
        allOneString_temp = sprintf('%.0f_' , A(index_row,:));
        A_str{index_row,:} = allOneString_temp(1:end-1);
    end
    

    【讨论】:

    • 在您的实际情况下,A 中的那些只有一位数吗?
    【解决方案3】:

    另一种方法,没有循环:

    A_str = num2str(A,'%i_');
    A_str = mat2cell(A_str(:,1:end-1), ones(1,size(A_str,1)));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多