如何在矩阵中插入一列字符?

时间:2018-06-30 18:10:43

标签: matlab matrix character

我想在MATLAB中将一列字符插入矩阵。

例如,我们要从第一个矩阵到达第二个矩阵:

first_matrix = [2  3; 4  5; 1  7]       
second_matrix = [c  2  3; c  4  5; c  1  7]

事实上,原因是我有一个来自软件的output.txt文件。在该文件中,我应该在其中选择一个矩阵,然后更改矩阵列的顺序。完成此操作后,即达到first_matrix,应在另一软件中使用second_matrix形式的输出。所以,最后我应该将其保存为文本文件格式,以供第二个软件使用。

1 个答案:

答案 0 :(得分:2)

您不能使用此数字数组。可能的方法是:

  1. 使用categorical array,即

    >> second_matrix = [num2cell(repmat('c',3,1)) categorical(first_matrix)]
    
    ans = 
    
      3×3 categorical array
    
         c      2      3 
         c      4      5 
         c      1      7 
    
  2. 使用character array,即

    >> second_matrix = [repmat('c  ',3,1) num2str(first_matrix)]
    
    second_matrix =
    
       3×7 char array
    
       'c  2  3'
       'c  4  5'
       'c  1  7'
    
  3. 使用string array(要求R2016b≥)

    >> second_matrix = [repmat("c",3,1) first_matrix]   %in ≥ R2017a
     % second_matrix = [repmat(string('c'),3,1) first_matrix]   %in ≥ R2016b
    
    second_matrix = 
    
      3×3 string array
    
        "c"    "2"    "3"
        "c"    "4"    "5"
        "c"    "1"    "7"
    
  4. 使用cell array,即

    >> second_matrix = [num2cell(repmat('c',3,1)) num2cell(first_matrix)]]
    
    second_matrix =
    
       3×3 cell array
    
         {'c'}    {[2]}    {[3]}
         {'c'}    {[4]}    {[5]}
         {'c'}    {[1]}    {[7]}
    
  5. 即使用symbolic array(需要Symbolic Math Toolbox)

    >> second_matrix = [repmat(sym('c'),3,1) first_matrix]
    
    second_matrix =
    
    [ c, 2, 3]
    [ c, 4, 5]
    [ c, 1, 7]