提前感谢您的帮助!
在Matlab中,boxplot command可以接受分组变量G,即:
boxplot(X,G)指定一个或多个分组变量G,为每组共享相同G值的X值生成一个单独的框。分组变量每个X元素必须有一行,或者X每列必须有一行。使用向量,字符数组,字符串的单元格数组或向量分类数组在G中指定单个分组变量;使用这些变量类型的单元格数组(例如{G1 G2 G3})或使用矩阵在G中指定多个分组变量。如果使用多个分组变量,则它们必须全部具有相同的长度。包含NaN值或分组变量中的空字符串的组将被省略,并且不计入其他参数所考虑的组数。
但是,boxplot的Octave实现似乎缺少此参数。例如,假设我有以下向量,
X = [1.34,2.89,1.28,2.98,8.84,8.38,3.26,4.06,42.48,3.19,3.63,3.23]; %更长
G = [1,3,3,3,23,15,15,23,23,20,23,23]; %更长
在matlab中运行boxplot(X,G)将创建一个图,其中X(在同一组中)中的值被放在同一个框中。
有没有办法在Octave中解决这个问题?
答案 0 :(得分:0)
Octave boxplot允许使用细胞载体作为输入。 您可以按如下方式创建单元格向量。
uniG = unique(G);
l = length(uniG);
for i = 1:l
XG{i} = X(G == uniG(i));
end
boxplot(XG);
答案 1 :(得分:0)
如圣地亚哥所述,您必须将它们分组到一个单元格中,但可以通过
更轻松地完成 boxplot({X, G})
请参阅http://octave.sourceforge.net/statistics/function/boxplot.html中的示例,注意 {和} 。