如何绘制Matlab中显示的网格图?

时间:2012-02-02 22:40:25

标签: matlab grid figure

enter image description here

我想在上面的图上方绘制一些或没有字符。感谢。

2 个答案:

答案 0 :(得分:3)

如果你真的想要一个情节,你可以用这样的函数来做:

function plotGrid(x)

dims = size(x);

% Get grid
tick_x = linspace(0, 1, dims(2)+1);
tick_y = linspace(0, 1, dims(1)+1);

% Get center points
pt_x = (0.5:dims(2)) / dims(2);
pt_y = (0.5:dims(1)) / dims(1);

[pt_x pt_y] = meshgrid(pt_x, pt_y);

% Plot
figure; hold on; axis off
plot([tick_x; tick_x], repmat((0:1)', 1, dims(2)+1), 'k')
plot(repmat((0:1)', 1, dims(1)+1), [tick_y; tick_y], 'k')
text(pt_x(:), pt_y(:), x(:), 'HorizontalAlignment', 'center')

例如:

>> x = num2cell(randi(10, [10 6]));
>> plotGrid(x)

enter image description here

答案 1 :(得分:1)

在图上显示表格数据的一种方法是使用UITABLE

data = 

    'U1'    'U2'    'U3'    'U4'    'U5' 
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []       []
      []      []      []      []    'U85'

>> uitable('Data', data, 'Units', 'normalized', 'Position', [0 0 1 1]);

产生:

enter image description here