0

我想知道如何创建一个由 n 个列组成的矩阵,其中每一列是方式的分布0:0.01:1 我理想地想要的是一种ndgrid形式

[x1,x2,x3...,xn] = ndgrid(0:0.01:1,0:0.01:1.....m times) 

我的约束是行应该加起来为 1。也就是说,我只会保留上面网格中加起来为 1 的那些行的索引。但是你可以理解,这太大而无法计算。因此,我正在寻找实现这一目标的简短/有效的方法。我将不胜感激任何帮助。

4

1 回答 1

0

如果您只有一个二维矩阵并且想要过滤它,那么只有相加的行1可以通过求和和比较所有行然后将其用作索引来实现:

>> A=[0.1,0.3,0.3,0.3; % adds up to 1
      0.5,0.4,0.1,0.4; % adds up to 1.2
      0.4,0.2,0.1,0.3; % adds up to 1
      0.0,0.1,0.5,0.0] % adds up to 0.6
>> A(sum(A,2)==1,:)

sum(A,2)第二维(行)上对 A 求和的地方,将此总和与 进行比较1。这给出了一个布尔数组,该数组用作索引来选择矩阵的行,然后给出:

ans =
  0.1000    0.3000    0.3000    0.3000
  0.4000    0.2000    0.1000    0.3000
于 2016-05-04T07:15:37.343 回答