因為matlab的boxplot支持grouping argument(也就是為每一個數據貼所屬group標簽),所以可以利用這個性質繪制多組且size不同的數據的boxplot
首先,要介紹一下matlab的grouping argument是怎么回事。如下圖所示,y是一個1維數組,而g1是一個和y相同大小的數組或者元胞數組,用于表示y中各個數字所屬的group(示例圖里因為用字母表示group,所以g1是元胞數組,如果用數字表示grope,g1則為數組)
然后,只需要使用命令 boxplot(y, g1) 就可以了
舉例:
x = rand(5,1);
y = rand(10,1);
z = rand(15,1);
group = [repmat({'x'}, 5, 1); repmat({'y‘’}, 10, 1); repmat({'z'}, 15, 1)];
boxplot([x;y;z], group);
[x;y;z] 是合成的長度為25的向量,第1到5屬于x,第6到15屬于 y,第16到25屬于z,group為這25個元素所屬的組(即x,y,x)是一個長度為25的數組。這里group的生成使用了repat函數,repat函數的功能是復制和平鋪矩陣,以repmat({'x'}, 5, 1)為例