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
,为什么?