How to randomize order of functions
Mostra commenti meno recenti
I have a function that calls a number of sub-functions. Each of these sub-functions is a test with slight differences but the same basic purpose and a single output. A basic example is given below. What I need to do is have the 4 test functions run in a randomized order each time. I am unsure how to go about it. Any help is much appreciated. Thank you.
function [results] = runTests(testparamters)
result1 = test1(testparameters);
result2 = test2(testparameters);
result3 = test3(testparameters);
result4 = test4(testparameters);
results = [result1 result2 result3 result4];
end
2 Commenti
Dyuman Joshi
il 26 Apr 2023
"What I need to do is have the 4 test functions run in a randomized order each time."
But that wouldn't change the final output of runTests().
Do you want to get the results array with random combination of the result1, result2, result3 and result4 ? (As @Matt has shown below) If this is not what you want, please specify.
Erik J
il 26 Apr 2023
Risposta accettata
Più risposte (1)
Matt
il 26 Apr 2023
Hi,
By curiosity in what context do you need to do something like this ?
You can store the functions handles in a cell and call randomly the cells element like this :
x = 1;
N_fun = 3;
[~,random_index] = sort(rand(1,N_fun));
fun_list = {@f1,@f2,@f3};
results = nan(1,N_fun);
for ii=1:N_fun
results(ii)=fun_list{random_index(ii)}(x);
end
results
function y =f1(x)
y = 1;
end
function y =f2(x)
y = 2;
end
function y =f3(x)
y = 3;
end
1 Commento
Erik J
il 26 Apr 2023
Categorie
Scopri di più su Random Number Generation in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!