我想在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
形式的输出。所以,最后我应该将其保存为文本文件格式,以供第二个软件使用。
答案 0 :(得分:2)
您不能使用此数字数组。可能的方法是:
>> second_matrix = [num2cell(repmat('c',3,1)) categorical(first_matrix)]
ans =
3×3 categorical array
c 2 3
c 4 5
c 1 7
使用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'
使用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"
使用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]}
即使用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]