How make this code execute faster?
Show older comments
Hi, I'm just trying to figure out how to make this code faster:
N = size(X);
temp = 1:N;
S1 = temp(~ismember(temp,S));%this runs slow
M = X(S,S1); %this runs slos
m = min(M);
cost = sum(m);
X is a square matrix.
Given array of indexes S, I want to extract the submatrix M of S rows, and S1 columns, where S1 are the indexes which are not in S.
Hope I explained it well.
There is a way to achieve the same results faster ?
2 Comments
madhan ravi
on 9 Jun 2019
Edited: madhan ravi
on 9 Jun 2019
What is size of X?
Andrea Abbate
on 9 Jun 2019
Edited: Andrea Abbate
on 9 Jun 2019
Accepted Answer
More Answers (1)
dpb
on 9 Jun 2019
Try
S1 = setdiff(1:N;S));
What is the precise definition of "runs slow(ly)"? In what context and how have you deduced/concluded this is so?
1 Comment
Andrea Abbate
on 9 Jun 2019
Edited: Andrea Abbate
on 9 Jun 2019
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!