我有以下代码来绘制方框图,但我不断收到错误消息“必须有与组相同数量的标签或X中的元素数量”。有人可以指出我的错误。谢谢。
xyz = [1x160];
xzy = [1x160];
yzx = [1x160];
yxz = [1x160];
zxy = [1x160];
zyx = [1x160];
figure();
boxplot([xyz, xzy, yxz, yzx, zyx, zxy],'notch', 'on','labels', {'xyz','xzy','yxz','yzx','zyx','zxy'}, 'symbol', '')
hold on
ylim([0,30]);
xlabel('Rotational Matrices')
ylabel('fn(gamma)')
grid();
答案 0 :(得分:0)
你的矢量需要以正确的方式定位(注意转换):
xyz = linspace(1,160,160)';
xzy = linspace(1,160,160)';
yzx = linspace(1,160,160)';
yxz = linspace(1,160,160)';
zxy = linspace(1,160,160)';
zyx = linspace(1,160,160)';
figure();
boxplot([xyz, xzy, yxz, yzx, zyx, zxy],'notch', 'on','labels', {'xyz','xzy','yxz','yzx','zyx','zxy'}, 'symbol', '')
hold on
% ylim([0,30]);
xlabel('Rotational Matrices')
ylabel('fn(gamma)')
grid();
答案 1 :(得分:0)
这里的主要问题是你将你的向量连接成一个大向量。根据{{3}}的文档:
如果X是矩阵,则每列有一个框;如果X是一个向量, 只有一个盒子。
由于只有一个框,并且您尝试传递多个标签,因此该调用将会出错。
您要做的是创建一个矩阵,其中每列数据对应于您的向量。观察以下内容之间的区别:
A = 1:4;
B = 5:8;
test1 = [A, B];
test2 = [A', B'];
>> test1
test1 =
1 2 3 4 5 6 7 8
>> test2
test2 =
1 5
2 6
3 7
4 8