How to reduce the execution time of the given piece of code?

3 visualizzazioni (ultimi 30 giorni)
I have an algorithm "WHO", a function "fobjNoise" and a script "main". I run the main and I get different values of fitness for Noise that is varying from 0 to 40 dB. Then I plot the fitness vs Noise graph. But there are two issues. These are:
1- This code takes too much time. I want to reduce it execution time.
2-When I do pre-allocation for the variables onev, twov etc, like below:
Runs = 50; % Number Of Times To Run The Inner Loop
onev=zeros(Runs,1);
time1=zeros(Runs,1);
two1=zeros(Runs,dim);
twov=zeros(Runs,dim);
then when I try to plot the fitness values obtained , it gives me an error like below:
>> onev=sort(onev,'descend');
>> plot(Noise,onev)
Error using plot
Vectors must be the same length.
>>
Why it is so and what to do so that it takes less time and doesn't give me the error even if I increase the no. of Runs or I vary the Noise levels from 0 to 50 or from -40 to 40 etc.?
  9 Commenti
Torsten
Torsten il 6 Gen 2024
Modificato: Torsten il 6 Gen 2024
You have just reproduced my code. You have not done any changes. So I don't understand what do you mean?
I don't want to enter the discussion. I just added initialization.m and exchange.m from the file exchange that you forgot to include.
Sadiq Akbar
Sadiq Akbar il 7 Gen 2024
My problem is still not resolved. However, I am happy that at least you all have tried, that's why I am thankful to all of you.

Accedi per commentare.

Risposte (1)

Taylor
Taylor il 8 Gen 2024
The Profiler is the perfect tool for this. You will be able to see a thorough breakdown of the runtime of your code, and identify which functions are taking the most time. There are also some common ways to speed up code outlined here

Categorie

Scopri di più su Mathematics and Optimization in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by