How make this code execute faster?
古いコメントを表示
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 件のコメント
madhan ravi
2019 年 6 月 9 日
編集済み: madhan ravi
2019 年 6 月 9 日
What is size of X?
Andrea Abbate
2019 年 6 月 9 日
編集済み: Andrea Abbate
2019 年 6 月 9 日
採用された回答
その他の回答 (1 件)
dpb
2019 年 6 月 9 日
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 件のコメント
Andrea Abbate
2019 年 6 月 9 日
編集済み: Andrea Abbate
2019 年 6 月 9 日
カテゴリ
ヘルプ センター および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!