我是新的matlab用户。
现在,我正在使用matlab软件开展工作。但我有问题改进我的代码,以便快速执行。
现在,我必须制作一个矩阵(A,10,C)),其值为整数[1 10]。
目前,我正在使用逻辑randperm
。在这里我的代码:
for c=1:C,
for a=1:A,
result(a,:,c)=randperm(10);
end
end
但是当我尝试使用个人资料查看器进行分析时。该代码需要更多时间。
所以我希望有人想分享他/她的经历。 谢谢。 方面
答案 0 :(得分:1)
这是一个替代解决方案,但它没有关于随机数分布的randperm
的良好属性:
[~,result_alt] = sort( rand(A,10,C) , 2);
快速配置文件显示,A = C = 10
时,您的方法平均需要大约1.6e-3秒,而此方法平均需要5.6e-5秒。
较早版本的MATLAB不支持~
运算符。如果是这样,请尝试:
[vals result_alt] = sort( rand(A,10,C) , 2);
并忽略vals
。
答案 1 :(得分:0)
这一定很快。
result = ceil(10 * rand(A, 10, C));