Fastest way to replace values in an array if they equal a certain value?
古いコメントを表示
Hello,
I have a very large array (4 billion x 2). I frequently need to update the values in column two based on a value from another list. This is how I currently have it:
for i = 1:size(net,1)
imcoords(imcoords(:,2)==net{i,7},2) = i;
end
Where net is a cell array and imcoords is the Nx2 array. Just as it is written, I need to replace all values of the second column of imcoords that equal the value in the 7th column of the cell array with the index of the current row of the cell array we are in. With the method I have right now this takes way too long and is the current bottleneck of my code since I need to do this frequently.
Does anyone have any ideas to make this quicker?
Thanks you!
Eric
2 件のコメント
John D'Errico
2019 年 5 月 26 日
Don't forget, to NEVER test for exct equality of floating point numbers. If you do not learn to use a tolerance, then your next plaintive question will be why does my code not work some of the time?
Eric Chadwick
2019 年 5 月 26 日
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Grid Lines, Tick Values, and Labels についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!