Как вставить столбец символов в матрицу? - PullRequest
0 голосов
/ 30 июня 2018

Я хотел бы вставить символьный столбец в матрицу в 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 голосов
/ 01 июля 2018

Вы не можете делать с этими числовыми массивами. Возможные способы сделать это:

  1. Использование категориального массива , т.е.

    >> 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. Использование массива символов , т. Е.

    >> 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. Использование строкового массива (требуется ≥ 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. Использование массива ячеек , т.е.

    >> 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 Math Toolbox), т.е.

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