首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MATLAB中创建用于统计的虚拟集

在MATLAB中创建用于统计的虚拟集
EN

Stack Overflow用户
提问于 2015-02-05 13:14:34
回答 1查看 149关注 0票数 0

我正在考虑在MATLAB中创建虚拟集,首先我创建了一个包含10个min=5实例和max =10的随机变量数组,下面是我的代码r = (10-5).*rand(10,1) + 5; --我需要关于如何创建以下内容的帮助;

1:创建与我的第一个变量(r)正相关的附加变量?

2:创建与我的第一个变量(r)负相关的附加变量?

3:创建一个sphare形状的数据集?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 19:10:06

这样做很简单。就二维问题而言,表现出正相关的数据是那些数据点,在这些数据点中,独立值r的每增加一次,产出都会明显增加。同样,对于负相关性,独立值r每增加一次,产出就会减少。

因此,您可以做的就是简单地定义一个y = mx + b类型的直线方程,其中mb是先验确定的。一旦您有了这些术语,您只需在这一行的顶部添加任何您想要的噪声,以生成您的“相关”噪声。因此,给定mb,您将解决前两个问题,如下所示:

问题1

定义斜率作为m.有点像m = 2

代码语言:javascript
运行
复制
rng(123); %// For reproducibility
m = 2; %// Set positive slope
b = 4;
r = (10-5).*rand(10,1) + 5; %// Produce 10 random points
x = (1 : 10).'; %// Define x values from 1 - 10
y = m*x + b + r; %// Generate output and plot
plot(x, y, 'b.', 'MarkerSize', 16);

我们得到:

问题2

定义一个负斜率.有点像m = -2

代码语言:javascript
运行
复制
rng(123); %// For reproducibility
m = -2; %// Set positive slope
b = 4;
r = (10-5).*rand(10,1) + 5; %// Produce 10 random points
x = (1 : 10).'; %// Define x values from 1 - 10
y = m*x + b + r; %// Generate output and plot
plot(x, y, 'b.');

我们得到:

问题3

这实际上会更复杂一些。你应该做的是给出一个中心和一个半径,你只需在圆内生成一串二维坐标,然后随机地检查圆的方程是否满足:

代码语言:javascript
运行
复制
(x - x0)^2 + (y - y0)^2 <= r^2

如果是的话,那我们就坚持重点。它将更容易集中在-1 <= (x,y) <= 1周围的随机点生成,然后我们检查是否半径小于1,以满足我们的检查。一旦我们找到了这些点,我们就会按半径来缩放这些点,然后把中心移过去。请记住,rand只在[0,1]之间产生值。因此,为了在[-1,1]之间生成值,我们乘以2,再减去1。

类似于:

代码语言:javascript
运行
复制
rng(123);
pts = 2*rand(1000,2) - 1; %// Generate points between [-1,1]
dists = sum(pts.^2, 2); %// Find distances from the centre
pts(dists > 1, :) = []; %// Any values beyond radius of 1 filter
centre = [2 2]; %// Set centre and radius
radius = 5;
pts = radius*pts; %// Scale points by radius
pts = bsxfun(@plus, pts, centre); %// Move points over
plot(pts(:,1), pts(:,2), 'b.', 'MarkerSize', 16); %// Plot points and adjust viewing axis
axis([-10 10 -10 10])

我们得到:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28350113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档