我可以使用以下代码
绘制尺寸为100x11的图表X = 0:0.1:1; plot(x,out(:,(x * 10)+1),'ko');
但我无法弄清楚如何为该数据绘制抖动图。
下面是我完整的Matlab代码,用于将数据保存到输出变量中,并尝试使用抖动图绘制输出数据。
clc;
close all;
clear all;
heads = 0;
flip_chance = 0.0;
weight = 0.0;
c = 2;
output = zeros(100,11);
for p = 0.1:0.1:1.0
for i = 1:1:100
heads = 0;
flip_chance = 0.0;
for j = 1:1:10
weight = rand();
flip_chance = (p*10)+weight;
if flip_chance >= 0.5 && weight <= p
heads = heads + 1;
end
end
%fprintf ("p : %f , heads : %d\n ", c, heads);
output(i, c) = heads;
end
c = c+1;
end
x=0:0.1:1;
plot(x, output(:,(x*10)+1),'ko');
当我使用情节运行时,我的输出低于输出
我试图以下面的格式获得情节
答案 0 :(得分:0)
抖动图表意味着像您所做的散点图,但每个点的位置都会添加一些噪声。例如,您可以使用以下代码:
sz = size(output);
x = repmat(linspace(0,1,sz(2)),sz(1),1);
plot(x+0.06*rand(sz),output+0.6*rand(sz),'k.')
我使用x+0.06*rand(sz)
因为x的增量为0.1,所以这给出了沿x轴的点间距的60%的点扩展。您可以根据自己的喜好更改0.06。与output+0.6*rand(sz)
相同:0.6是间距的60%。
修改强>
&#34;目标&#34;您发布的图表仅在y轴上使用抖动。您要忽略添加到x
的随机值来完成此操作。它似乎也使用了很多抖动,在视觉上合并了不同y组的点。您可以为这样的图表将随机乘数设置为至少1,但我不推荐它。