生成一个数字在[0,1]之间的矩阵

  • 本文关键字:之间 数字 一个 matlab
  • 更新时间 :
  • 英文 :


我必须生成一个由n x n个均匀分布的随机数(n从键盘上读取(组成的矩阵。这些数字应该在[0,1]之间,然后对这些数字进行平均>0.5.我试过以下几种:

value = 'Insert a value for n: ';
x = input(value);
matrix = rand(x,x);
matrix2(matrix < 0.5) = nan;
average = mean(matrix2, 'omitnan');
disp(average);

在我运行代码后,我得到的平均值是0,我不知道为什么。

在您的代码中,matrix2(matrix < 0.5) = nan;行是您第一次提到matrix2,因此这实际上创建了matrix2。这个";创建";索引语法最终会创建与matrix大小相同的matrix2,用nan填充matrix < 0.5所在的元素,而实际上它会将其他元素保留为0

您想要的是从matrix2开始作为matrix副本,然后设置元素,换句话说就是

matrix2 = matrix;
matrix2(matrix2 < 0.5) = nan;

相关内容

  • 没有找到相关文章

最新更新