MATLAB: Faster Method for removing duplicates

forfor loopMATLABoptimizationunique

I am trying to remove duplicate nodes from an auto mesh. I have attached a simple script. This works, but takes FOREVER if there are many (greater than 10,000) nodes. Does anyone have an alternate suggestion that would be faster?
node =
[0.1234 5.6789;
3.4567 9.8765;
4.5678 8.7654;
0.1234 5.6789]
% Remove duplicate nodes
node_array=cell(1,length(node));
for j = 1:length(node)
node_array(j,1) = {node(j,:)};
end
node_array_cat = cat(1,node_array{:});
[node junk node_map] = unique(node_array_cat,'rows');
node =
[0.1234 5.6789;
3.4567 9.8765;
4.5678 8.7654]

Best Answer

>> node_u = unique(node, 'rows', 'stable')
node_u =
0.1234 5.6789
3.4567 9.8765
4.5678 8.7654
should be more efficient. What was the purpose of this conversion to cell array?