多次运行一个脚本,记录输出为每个单独运行

16个视图(30天)
你好,
我拥有一个函数(说),生成一个随机n×n矩阵(我需要n = 8)的价值,我使用这些数据来计算成本函数(B)。所以我需要多次运行第一个函数(假设1000次)给我1000 8×8矩阵不同的随机数,然后计算成本函数使用这些1000个不同的矩阵。
这是我的一个函数:
函数[S] = main23 (n)
% / / n -矩阵大小(就我而言它是8)
[ii jj] = ndgrid (1: n);% / / S的行和列
2 = 2 (:);
jj = jj (:);
成功= 0;% / /…现在
尝试= 0;% / /尝试计数(不需要)
~成功
尝试=尝试+ 1;
S =南(n, n);% / / initiallize结果。南就意味着没有了位置
t = 1;% / /数字t被放置在S…
u = 1;% / /…u-th次
掩码= true(元素个数(2));% / / initiallize面具可用的位置
任何(面具)% / /虽然有可用的位置
可用=找到(面具);% / /找到可用的位置
r =兰迪(元素个数(可用),1);% / /选择一个可用的位置
itu = 2(可用(r));% (t) / /行u-th时间
jtu = jj(可用(r));% / / t的上校,u-th时间
S (itu jtu) = t;% / / t储存在那个位置
删除=(2 = =电联)| (jj = = jtu);
面具(删除)= false;% / /更新职位可供t的面具
u = u + 1;下u % / /
如果u > n% / /我们完成一些t
t = t + 1;% / /我们去新t
u = 1;% / / initiallize u
掩码= isnan (S (:));这个t % / / initiallize面具
结束
如果t > n% / /我们完成了所有的数字
成功= 1;% / /退出外循环(内部也会退出)
结束
结束
结束
所以我需要运行这个函数例如1000倍和1000年来记录每一个矩阵。任何想法吗?
谢谢你!

答案(2)

里克
里克 2017年9月8日
如果您的代码需要很长一段时间你可能会为每个结果保存到一个单独的垫文件。这也会使代码同时在不同的机器上运行,提供他们分享一些磁盘。(生成文件名类似 sprintf (“% sresult % 05 d.mat”、currentPath currentCount) )
另一个选择是保存在一个单元阵列的结果。
1评论
乌鲁斯人约万诺维奇
乌鲁斯人约万诺维奇 2017年9月8日
编辑:乌鲁斯人约万诺维奇 2017年9月8日
请你解释一下,好吗?我需要运行以上代码大约1000次,不知道怎么做,记录每一个矩阵,我从上面的代码运行1000次。我的意思是,有没有更快的方法不仅仅是单击execute按钮1000倍吗?

登录置评。


图像分析
图像分析 2017年9月8日
试试这个:
k = 1: 1000
年代{k} = main23 (n);
结束
4评论

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!