2

MATLAB 2010 或更低版本中是否有任何函数可以以表格形式打印结果(例如:某些矩阵)?我从谷歌搜索得到的只是一个table()只能在 MATLAB 2013 或更高版本中使用的函数。我的机器里有 MATLAB 2010,下载更新版本是不切实际的,因为它非常大而且我很着急。谢谢你。

4

3 回答 3

3

如何使用displaytableMatlab 文件交换: http: //www.mathworks.co.uk/matlabcentral/fileexchange/33717-display-formatted-text-table-of-data

这是从文档中提取的示例:

示例 1 - 基本用法

colheadings = {'number of projects','sales','profit'};
rowheadings = {'Jimmy Slick', 'Norman Noob'}
data = [3 rand(1) rand(1); 1 rand(1) rand(1)];

要将每行中的第一个数字格式化为十进制 (%d),将第二个数字格式化为 %16.4f,将第三个数字格式化为 %16.5E,请执行以下操作:

wid = 16;
fms = {'d','.4f','.5E'};

在这种情况下,16 将是字段宽度,'.5E' 是用于 fms 参数的

fileID = 1;

displaytable(data,colheadings,wid,fms,rowheadings,fileID);

这是格式化的输出:

            |number of projec |           sales |          profit 
Jimmy Slick |               3 |          0.4502 |    5.22908E-001 
Norman Noob |               1 |          0.9972 |    2.78606E-002 
于 2014-08-20T08:04:53.137 回答
2

对于 Matlab 2012 及以下版本,

可以使用打印垫

printmat(yourMatrix, 'yourMatrix', 'ROW1 ROW2 ROW3 ROW4 ROW5', 'COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5' );

或使用

dataset({yourMatrix 'COLUMN1','COLUMN2','COLUMN3','COLUMN4','COLUMN5'}, ...
                'obsnames', {'ROW1','ROW2','ROW3','ROW4','ROW5'})

参考:显示带有行和列标签的矩阵

对于 Matlab 2012 及更高版本:

使用array2table,它将数组转换为表格。

例子:

A = [1 4 7; 2 5 8; 3 6 9];

T = array2table(A)

T = 

    A1    A2    A3
    __    __    __

    1     4     7 
    2     5     8 
    3     6     9 
于 2014-08-20T06:20:20.253 回答
2

嗨,我不确定这是否是您所指的功能table()。我正在使用的是:

uitable('Data', c_Output(2:end,2:end), 'ColumnName', c_Output(1,2:end),...
         'RowName', c_Output(2:end,1), 'Units', 'normalized',...
         'Position', [0.575 0.32 0.33 0.13]);

c_Output 是一个矩阵,其中包含我的数据和行/列名称。位置从左下角开始计算。所以右上角是(1,1)。您必须手动为每个图形/位置调整它。不知道是否有将表格转换为“绘图”的内置函数

于 2014-08-20T06:21:49.520 回答