代码如下,各个变量所代表的数值在注释里!
%%
V( : , : , 1)=unifrnd(-1,1,n_x,n_y); %-1,1,3,20-----生成3*20*2001范围 -1 -- 1的随机数
W( : , : , 1)=unifrnd(-1,1,n_y+1,n_d); %-1,1,21,1
%%
程序运行后怎么多了个2001
代码如下,各个变量所代表的数值在注释里!
%%
V( : , : , 1)=unifrnd(-1,1,n_x,n_y); %-1,1,3,20-----生成3*20*2001范围 -1 -- 1的随机数
W( : , : , 1)=unifrnd(-1,1,n_y+1,n_d); %-1,1,21,1
%%
程序运行后怎么多了个2001
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
unifrnd 函数是MATLAB中的一个随机数生成函数。它接受四个输入参数:
a 和 b(默认为 -1 和 1):生成的随机数应在指定区间内。size:生成随机数的大小。如果你想要生成一个三维数组 V 的每个元素都是从 -1 到 1 范围内的随机数,并且大小为 nx 行和 ny 列,你可以使用以下代码:
V = unifrnd([-1, 1], size);
如果你想生成一个二维数组 W 的每个元素都是从 -1 到 1 范围内的随机数,并且大小为 ny + 1 行和 nd 列,你可以使用以下代码:
W = unifrnd([-1, 1], [ny + 1, nd]);
然而,在你的例子中,你提到 V(:,:,1) 和 W(:,:,1) 是分别生成了3行、20列和3行、20列的矩阵。这似乎与你的意图不符,因为这些值都应该是相同的。可能是因为你在调用 unifrnd 函数时传入了错误的参数。例如,当你尝试生成一个包含三个维度的矩阵时,你应该将 size 参数设置为 (n_x, n_y, n_z) 或 (nx, ny, nz),而不是 (nx, ny), (n_y, nd) 或 (n_x, n_y, nd)。
此外,如果你只是想生成随机数,而不需要它们填充到一个特定形状的数组中,你可以直接使用 rand 函数,而不必先进行任何类型的转换或调整。例如:
rand(n, m)
这将生成一个尺寸为 n 行和 m 列的随机数数组。