Script optimization: for loop, if statement, large dataset
Mostrar comentarios más antiguos
Hello everyone,
below is the part of my script that I would like to be optimized. Any tips would be greatly appreciated.
Note: A = [1200x1200]
Pm = 0.2
N = length(A);
for Node_i = 1: N
if(Int(Node_i) > 0) && (rand <= Pm)
k_Node_i_in = 0;
k_Node_i_out = 0;
for Node_j = 1 : N
if(Node_i ~= Node_j) && (Child.CID(Node_j) == Child.CID(Node_i))
k_Node_i_in = k_Node_i_in + A(Node_i, Node_j);
end
if(Node_i ~= Node_j) && (Child.CID(Node_j) ~= Child.CID(Node_i))
k_Node_i_out = k_Node_i_out + A(Node_i, Node_j);
end
end
end
end
11 comentarios
Jan
el 8 de Jun. de 2022
Please porivde some input data. What ist Child.CID ?
Mustafa Abbas
el 8 de Jun. de 2022
Editada: Mustafa Abbas
el 9 de Jun. de 2022
Dyuman Joshi
el 9 de Jun. de 2022
Editada: Dyuman Joshi
el 10 de Jun. de 2022
(Int(Node_i) > 0)
What is Int()?
Also, if you define
k_Node_i_in = 0;
k_Node_i_out = 0;
inside your for loop, they will be rewritten at every iteration.
Mustafa Abbas
el 9 de Jun. de 2022
Jan
el 9 de Jun. de 2022
The cheapest acceleration is to avoid the repeated addressing in the struct Child. Copy the contents of Child.CID to the variable CID.
I asked you for providing input data, because it is very hard to optimize code without running it. It is ineffieicnt if all readers write some code to create some data. In addition they could implement wrong ideas and their work is wasted.
I still do not understand, what Int is. A function or array?
Again: Please provide some meaningful input data, e.g. created by rand or randi, such that we can run you code.
Mustafa Abbas
el 9 de Jun. de 2022
Dyuman Joshi
el 9 de Jun. de 2022
Please clarify what exactly Int() is.
Dyuman Joshi
el 9 de Jun. de 2022
So, is it a numeric array?
Mustafa Abbas
el 10 de Jun. de 2022
Jan
el 10 de Jun. de 2022
@Dyuman Joshi: Look onto the data and the provided script: "Int" is "NumInteractionProtein" in the MAT file.
Mustafa Abbas
el 10 de Jun. de 2022
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre App Building en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!