Could anyone please help me with this? I am new to using MATLAB so I have written the code in a layman fashion and I am sure that there are ways to write it better.

The code is below (takes about 30 seconds, depending on size of both the matrices)

for i = 1:1:size(binary_probability_matrix,1)

for j = 1:1:size(matrix,1)

if matrix(j,1:2) == binary_probability_matrix(i,1:2)

matrix(j,3:4) = binary_probability_matrix(i,3:4);

elseif matrix(j,1) == binary_probability_matrix(i,2) && matrix(j,2) == binary_probability_matrix(i,1)

matrix(j,3:4) = binary_probability_matrix(i,3:4);

end

end

end

Basically I am comparing the first two columns of matrix and binary_probability_matrix. If the 1st 2 columns in the matrix are 4 3 ..then I search in the first two columns of binary_probability_matrix for 4 3 OR 3 4.

Similarly, when I am searching for 10 18, I search the first two columns of the binary_probability_matrix for finding 10 18 OR 18 10.

I hope that I was clear in mentioning my question. Please help me with this as the execution time is quite large.

EDIT: order of matrix is 5000x4 and the order of binary_probability_matrix is 2500x7,

Thank you

Jay

## 2 Comments

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/493746-how-do-i-decrease-the-time-taken-by-these-two-for-loops-i-am-taking-30-seconds-approximately-to-run#comment_772426

⋮## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/493746-how-do-i-decrease-the-time-taken-by-these-two-for-loops-i-am-taking-30-seconds-approximately-to-run#comment_772426

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/493746-how-do-i-decrease-the-time-taken-by-these-two-for-loops-i-am-taking-30-seconds-approximately-to-run#comment_772430

⋮## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/493746-how-do-i-decrease-the-time-taken-by-these-two-for-loops-i-am-taking-30-seconds-approximately-to-run#comment_772430

Sign in to comment.