Matlab:在矩阵中查找到最近真值的距离
假设我有一个大约1000x1000大小的逻辑矩阵a,并希望为每个元素找到最接近真值的欧几里德距离。如何在Matlab中快速完成 例如,如果我有矩阵A:Matlab:在矩阵中查找到最近真值的距离,matlab,matrix,distance,Matlab,Matrix,Distance,假设我有一个大约1000x1000大小的逻辑矩阵a,并希望为每个元素找到最接近真值的欧几里德距离。如何在Matlab中快速完成 例如,如果我有矩阵A: A = [1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0] 那么我想要的是: B = [0 1 1 1 1 0 0 0 1.41 1 1 1 2 1 0 1] 一种可能是imdeflate,但是我必须用2Mx2N矩阵来扩展MxN矩阵,这将花费太长的时间 我试着用pdi
A = [1 0 0 0
0 1 1 1
0 0 0 0
0 0 1 0]
那么我想要的是:
B = [0 1 1 1
1 0 0 0
1.41 1 1 1
2 1 0 1]
一种可能是imdeflate,但是我必须用2Mx2N矩阵来扩展MxN矩阵,这将花费太长的时间
我试着用pdist2计算从每个元素到每个元素==1的距离,然后取最小值,但结果是占用了太多的内存
有什么建议吗?我也会选择一个近似的解决方案。图像处理工具箱中的函数正是这样做的
A = [1 0 0 0
0 1 1 1
0 0 0 0
0 0 1 0];
B = bwdist(A);
% 0.00000 1.00000 1.00000 1.00000
% 1.00000 0.00000 0.00000 0.00000
% 1.41421 1.00000 1.00000 1.00000
% 2.00000 1.00000 0.00000 1.00000
我的谷歌搜索技能肯定需要提高。太多了!