【问题标题】:Generate random samples at a certain point in Matlab在 Matlab 中的某个点生成随机样本
【发布时间】:2016-03-18 22:52:31
【问题描述】:

我有以下两个数据集:

  A=  (1,1)       1.9643
 (2,1)       2.2753
 (3,1)       2.9781
 (4,1)       2.9320
 (5,1)       3.5772
 (6,1)       4.0150
 (7,1)       3.3814
 (8,1)       3.9113
 (9,1)       2.7822
(10,1)       2.5518
(11,1)       3.3698
(12,1)       3.1048
(13,1)       1.9182
(14,1)       2.2638
(15,1)       2.6555
(16,1)       3.1855
(17,1)       3.6579
(18,1)       3.9113
(19,1)       3.6002
(20,1)       3.0357
(21,1)       1.5841
(22,1)       2.0103
(23,1)       1.9527
(24,1)       2.2753
(25,1)       2.3099
(26,1)       2.8283
(27,1)       3.0473
(28,1)       2.4827
(29,1)       2.5057
(30,1)       1.8721
(31,1)       2.0103
(32,1)       1.2269
(33,1)       1.8951
(34,1)       1.5610
(35,1)       1.5495
(36,1)       1.6878
(37,1)       1.4919
(38,1)       0.9620
(39,1)       1.1693
(40,1)       0.8122
(41,1)       0.9735
(42,1)       1.2500
(43,1)       1.3191
(44,1)       2.2292
(45,1)       2.4482
(46,1)       2.7938
(47,1)       2.0910
(48,1)       2.5403
(49,1)       0.9044
(50,1)       0.7662
 (1,2)       4.5957
 (2,2)       3.8589
 (3,2)       4.5651
 (4,2)       3.5519
 (5,2)       2.8560
 (6,2)       3.1937
 (7,2)       3.4291
 (8,2)       4.1761
 (9,2)       4.0431
(10,2)       4.6162
(11,2)       3.9101
(12,2)       3.0709
(13,2)       4.0534
(14,2)       4.3706
(15,2)       3.5008
(16,2)       4.2888
(17,2)       3.8692
(18,2)       3.4291
(19,2)       3.1221
(20,2)       3.3165
(21,2)       3.3575
(22,2)       3.2039
(23,2)       2.7843
   (24,2)       2.7127
(25,2)       2.9584
(26,2)       2.6309
 (27,2)       2.2931
  (28,2)       2.0373
   (29,2)       2.3853
   (30,2)       2.0577
   (31,2)       2.3546
    (32,2)       2.3239
    (33,2)       2.9174
     (34,2)       3.0709
    (35,2)       2.6923
     (36,2)       2.4057
     (37,2)       2.0271
      (38,2)       2.6820
   (39,2)       2.9276
    (40,2)       2.9992
   (41,2)       3.3881
   (42,2)       3.1937
   (43,2)       3.5109
   (44,2)       2.2010
  (45,2)       2.6411
  (46,2)       1.9656
   (47,2)       1.6177
  (48,2)       2.8867
 (49,2)       3.0198
 (50,2)       2.5899

这里,A 是二维稀疏矩阵,其中 (i,i)。

而B是(50,1)矩阵,其中前20个值为+1,后30个值为-1。

所以数据点是这样的:

现在,我想选择 A 的 (40,50) 位置,然后想在点的 +/- 2 个区域内生成 1000 个随机点。

所以,图表应该是这样的:

请告诉我,我如何在 matlab 中做到这一点。

【问题讨论】:

  • 欢迎来到 Stack Overflow!你试过什么吗?如果您想在这个网站上获得帮助,您应该表明您已经为解决问题付出了一些努力。

标签: matlab random scatter-plot


【解决方案1】:

由于您没有提到编程语言,所以这里是通用解决方案:

假设您希望数据以 (x,y) 为中心,展开 s 和标签 l。

然后,您将为每个对象生成两个随机高斯,按所需的散布 s 对其进行缩放,添加中心向量 (x,y),然后将此向量附加到您的数据中并使用所需的标签。

在这里,您的中心将类似于 (45,45) 并且分布可能为 5 或仅 1。

【讨论】:

  • 我很抱歉。它应该在 Matlab 中。我编辑了这个问题.. 谢谢。请让我知道我该怎么做。
  • 我不使用 Matlab。但是上面的描述在 Matlab 中也应该很容易实现。
【解决方案2】:

这会在位置 (40,50) 的 +/- 2 区域内生成并绘制 1000 个均匀分布的随机点:

plot (40+4*rand(1000,1)-2, 50+4*rand(1000,1)-2,'o')

我知道我忽略了您问题的“从稀疏矩阵 A 中选择一个位置”部分。我希望这部分并不重要,无论如何这都会对您有所帮助。

如果您需要其他随机分布,请查看randn(用于高斯)或其他rand* 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多