Matlab 向双栏添加字符串标题
我有一个双矩阵Matlab 向双栏添加字符串标题,matlab,Matlab,我有一个双矩阵a,大小10x10。我想做的是我有一个大小为1x10的字符串数组。我想用这个字符串数组替换矩阵A中的第一行,作为这些列的标题。与第一列相同。如果有人可以建议如何在Matlab中实现此功能。对于Matlab R2013b或更高版本 如果至少有MATLAB R2013b或更高版本,则可以使用该函数以所需格式显示值。假设矩阵存储在A中。接下来,假设行标题位于单元格数组中并存储在行中,列标题存储在名为列的单元格数组中,请尝试以下操作: 试试这个: T = array2table(A, 'R
a
,大小10x10
。我想做的是我有一个大小为1x10
的字符串数组。我想用这个字符串数组替换矩阵A
中的第一行,作为这些列的标题。与第一列相同。如果有人可以建议如何在Matlab中实现此功能。对于Matlab R2013b或更高版本
如果至少有MATLAB R2013b或更高版本,则可以使用该函数以所需格式显示值。假设矩阵存储在A
中。接下来,假设行标题位于单元格数组中并存储在行
中,列标题存储在名为列
的单元格数组中,请尝试以下操作:
试试这个:
T = array2table(A, 'RowNames', row, 'VariableNames', col);
下面是一个例子:
>> A = [1 12 30.48; 2 24 60.96; 3 36 91.44]
>> col = {'Feet', 'Inches', 'Centimeters'};
>> row = {'Number 1', 'Number 2', 'Number 3'};
>> T = array2table(A, 'RowNames', row, 'VariableNames', col)
T =
Feet Inches Centimeters
____ ______ ___________
Number 1 1 12 30.48
Number 2 2 24 60.96
Number 3 3 36 91.44
>> A = [1 12 30.48; 2 24 60.96; 3 36 91.44];
>> Acell = sprintfc('%f', A);
>> row = {'Feet', 'Inches', 'Centimeters'};
>> col = {'Number 1', 'Number 2', 'Number 3'};
>> out = [' ', row; col.', Acell]
out =
' ' 'Feet' 'Inches' 'Centimeters'
'Number 1' '1.000000' '12.000000' '30.480000'
'Number 2' '2.000000' '24.000000' '60.960000'
'Number 3' '3.000000' '36.000000' '91.440000'
对于MATLAB R2013a或更低版本
如果您有R2013a或更低版本,您别无选择,只能为此使用单元格数组。您只能在带有单元格数组的矩阵中实现混合数据类型。您需要做的是将每个数字转换为单元格数组中的单个单元格。我将向您介绍一个未记录的函数:。您可以将矩阵直接打印到单元格数组
因此,请尝试这样做,假设行
包含大小为1 x N
的行标题的单元格数组中的字符串,列
包含大小为1 x N
的列标题的单元格数组中的字符串。使用矩阵A
:
Acell = sprintfc('%f', A); %// Convert matrix to cells
out = [' ', row; col.', Acell]; %// Generate final matrix
out
包含所需的矩阵。下面是一个例子:
>> A = [1 12 30.48; 2 24 60.96; 3 36 91.44]
>> col = {'Feet', 'Inches', 'Centimeters'};
>> row = {'Number 1', 'Number 2', 'Number 3'};
>> T = array2table(A, 'RowNames', row, 'VariableNames', col)
T =
Feet Inches Centimeters
____ ______ ___________
Number 1 1 12 30.48
Number 2 2 24 60.96
Number 3 3 36 91.44
>> A = [1 12 30.48; 2 24 60.96; 3 36 91.44];
>> Acell = sprintfc('%f', A);
>> row = {'Feet', 'Inches', 'Centimeters'};
>> col = {'Number 1', 'Number 2', 'Number 3'};
>> out = [' ', row; col.', Acell]
out =
' ' 'Feet' 'Inches' 'Centimeters'
'Number 1' '1.000000' '12.000000' '30.480000'
'Number 2' '2.000000' '24.000000' '60.960000'
'Number 3' '3.000000' '36.000000' '91.440000'
如何摆脱这个单一的报价?如果我也想用行中的第一个单元格替换标题呢?@shepherd-你不能。这些是因为它是一个细胞阵列。您可以做的是尝试
celldisp
。。。。或者您可以使用表
。你有MatlabR2013B或更高版本吗?好的。我将修改我的答案。@shepherd-我刚刚更新了我的帖子:)看一看好的,我做了,但我在我的工作区中找不到显示或查看它的t
,为什么?