gpt4 book ai didi

matlab - 以图形方式表示迭代密度

转载 作者:行者123 更新时间:2023-12-02 03:17:54 24 4
gpt4 key购买 nike

善待一切,

我在 MATLAB 中工作,我正在使用蒙特卡罗技术来拟合模型。基本上,如果我们假设我的模型是一个简单的函数,例如

y=m*x^2+c

而且我的参数 m 和 c 都在 0.5 到 10 之间变化,我可以从这样的参数空间中随机抽取并每次获得一个新的 y。如果我绘制我对 y 的所有实现,我会得到类似于下图的结果:

Multiple Iterations of y, colours are drawn by the hsv colormap

有没有办法表示实现的密度?我的意思是,有没有一种方法(而不是绘制所有实现)来获得某种等高线图,该等高线图位于我的最小迭代和最大值之间,其颜色代表落在特定间隔内的实现量?

谢谢大家!

最佳答案

这不是很漂亮,但您可以改变参数并使用散点图/绘图,使其在视觉上更具吸引力。我还假设一个高斯分布而不是你的随机分布(完全随机着色会给你一个均匀的密度)。此代码还可以针对速度进行优化。

n = 1000;
l = 100;
x = linspace(1, 10, l);
y = repmat(x.^2, n, 1);
c = repmat(normrnd(1, 1, n, 1), 1, l);
m = repmat(normrnd(1, 1, n, 1), 1, l);

y = y.*m + c;
p = plot(y', '.');
figure; hold on;
for i = 1:l
[N,edges,bin] = histcounts(y(:, i));
density = N./sum(N);
c = zeros(n, 3);
for j = 1:n
c(j, :) = [1-density(bin(j))/max(density), 1-density(bin(j))/max(density), 1-density(bin(j))/max(density)];
end
scatter(ones(n, 1)*x(i),y(:, i),[],c,'filled');
end

给予

enter image description here

这会为 x 中的每个位置创建 y 值的直方图,然后计算每个 y 值和点中颜色的概率密度。在这里,每个位置 x 的 y 值都被单独归一化,以根据您需要重新归一化的图的整体密度为点着色。

关于matlab - 以图形方式表示迭代密度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35486092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com