我必须在图中用子图绘制不同的图形,但我不知道将绘制多少图,因为它取决于用户引入的数据(for loop)。为了绘制子图,我需要知道列数和行数。在matlab中是否有任何选项可以让matlab配置最佳数量的列和行来显示知道要完成的总子图的情节?我的意思是子图(a,b,c)=>最好的a,b组合知道c。
现在我要求用户引入列数和行数,但它有点不舒服。也许将总子图分解为最等于2的因子的算法应该有效,但我认为编码很难。如果它过于复杂,我会按照自己的方式跟进,但我很好奇。
答案 0 :(得分:5)
我认为没有内置的解决方案;在实践中对我来说效果很好的是以下方法,在这里我尝试使用比行更多的列(因为屏幕宽高比更宽)来获得几乎正方形的排列:
nRows = floor(sqrt(nPlots));
nCols = ceil(nPlots/nRows);