Matlab 将数据点作为表附加到子批次

Matlab 将数据点作为表附加到子批次,matlab,matlab-figure,Matlab,Matlab Figure,我生成了不同的数据集,通过计算平均值、标准偏差和标准误差进行分析 然后我将这些数据点显示为(x,y)-图以及不同子图中的直方图。 这一切都很好。我将平均值(等等)保存在一个单元格矩阵中,大致如下所示: [] A B C D E Mean 4.50 9.10 11.00 0.96 7.10 dev 0.41 1.71 1.43 0.27 0.91 err 0.22 0.43 0.

我生成了不同的数据集,通过计算平均值、标准偏差和标准误差进行分析
然后我将这些数据点显示为(x,y)-图以及不同子图中的直方图。 这一切都很好。我将平均值(等等)保存在一个单元格矩阵中,大致如下所示:

[]     A       B       C      D      E
Mean   4.50    9.10    11.00  0.96   7.10 
dev    0.41    1.71    1.43   0.27   0.91
err    0.22    0.43    0.93   0.17   0.70

我试图将此输出作为一个表添加到我图中另一个免费的特定子批次中。

正如patrik对问题的评论所示,这个问题可以通过
uitable
解决。然而,该解决方案需要手动更改以适应相应的子批次

uitable('Data', datapoints, 'ColumnName', Col_Names,...
         'RowName', Row_Names, 'Units', 'normalized',...
         'Position', [0.55 0.05 0.4 0.4]);
在发布的示例中,我使用了4个子批次中的第4个子批次(2x2)。 必须修改
'Position'
的值:

  • 第一个值等于到图形左侧的距离
  • 第二个值等于到图形底部的距离
  • 第三个值等于表格的宽度
  • 第四个值等于桌子的高度

图的左下角为0,0,右上角为1,1(因为我使用了标准化单位。

我认为这篇文章对你来说很有趣。或者,你可以尝试自己设计gui,但这似乎有点过分了。@patrik我也找到了解决方案,但我的子图块数和我想显示表的子图块数会不时变化,例如
子图块(2,2,4)
子批次(2,4,6)
因此,我需要一种方法将内容添加到特定子批次,我不知道如何编辑该解决方案(您的链接)为了适应我的问题。您可能需要添加一些代码以使其适合。
uitable
不是一个绘图,而是您添加到图形中的一个结构。您可能需要添加一些代码以满足您的需要,例如将位置设置为
'normalized'
,然后让表以正确的大小显示在正确的位置…如果您有一个3x2的子图例如,然后您希望表格位于左半部分或右半部分的下三分之一。这需要做一些工作,但这是可能的,而且可能不需要几个小时。@patrik您是对的,修改它以满足我的问题非常容易,我将很快在下面发布我的答案,但您必须更改手动调整位置以适应相应的子批次。是否有方法从图/子批次中读取这些值?我不会在几天内接受我的答案,以查看是否有人找到自动解决方案,如果是,我将接受该解决方案。我不确定您是否可以读取它们。如果您查看uitable的属性,可能是可行的。以及关于手动设置位置,据我所知,这与子地块的设置大致相同。只是子地块更加精细。通过将
单位设置为
“规范化”
,它们将在子地块改变大小时重新缩放。您可能还想编写一个回调函数来更新
uitablee> 当窗口大小改变时,但这是绝对不必要的。如果代码编写正确,则只需执行一次,与
子批次的数量无关。不,它不会。为获得最佳结果,
'Position'
应通过函数
Position=setTablePosition(m,n,p)进行设置
,其中
m
n
子批次
行和列的数量:
p
是首选位置。现在,由于您使用它们来创建
子批次
,它们已经可以成为变量。然后您只需要像以前一样在一个位置更改代码。