Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
问题陈述:-我想创建一个包含随机实数(浮点数)的vector(1维)的50个实例。数组大小(一维)将为3万,我该如何进行操作以使开销最小或复杂度最小?
回答: N = 30000; %// length of your vectors I = 50; %// number of instances v = rand(I, N); 在上面的示例中,您将生成一个矩阵,其中的每一行都是一个向量。生成具有均匀分布的随机数(对于高斯分布,请使用randn )。 如果需要分别创建每个实例,请使用循环: for i=1:I v = rand(1, N); %// do something with v end 但如果您是我,我不会使用它(速度较慢,恕我直言不太清楚)。 编辑 : 关于您在毛的答案下的问题: 不,您不需要自己编制索引。让Matlab为您完成。 例如,如果您需要重复以下操作50次: x1 = sigma*y + beta * vect1; ... x50 = sigma*y + beta * vect50; 假设y是大小为1x30000的向量,则可以在一行中进行计算: X = sigma*repmat(y, 50, 1) + beta * rand(50, 30000); 说明:每行都是您要计算的单个向量: X(1,:) = x1; ... X(50,:) = x50; repmat(y,50,1)在第一个维度(行)将y向量重复50次 更多&回答... |
![]() |
![]() |