【发布时间】:2015-01-12 23:46:32
【问题描述】:
我想制作一个随机排列的二维数组,其中每一行可能包含一个在前一行中生成的数字。但是同一行不能有相同的数字。
是否有没有for循环的情况下执行以下代码?
a = (1:100);
b = zeros(size(a,2), 4);
for i = 1:size(a, 2)
r = randperm(size(a, 2),4);
b(i,:) = r;
end
【问题讨论】:
-
您是否考虑过实施递归解决方案?这是作业题吗?
-
不,这不是家庭作业。以递归方式执行此操作会提高效率吗?
-
不确定,根据我的经验,我发现在 Matlab 中设计良好的循环通常更快。所以解决方案可能涉及一个循环,但您也愿意接受其他建议?
-
是的,还有什么其他建议?
-
对我来说似乎很高效,为什么需要更高效?
标签: matlab random permutation