在Matlab中我有一个(436 x 377)矩阵,称为“distance_center”,它包含相对于中心的(欧几里德)距离。中心位于(243,57)=(i,j)位置,我选择它作为原点。因此,在矩阵“距离中心”的位置(243,57),我的值为0.对于矩阵中的所有其他元素,我计算了距离中心的距离sqrt((x_i - x_j)^ 2 +(y_i) - y_j)^ 2)。
我现在想在Matlab中编写一个程序来执行以下操作:
我想知道满足某个条件的所有元素的位置(index(i,j))。例如:我想知道距离中心的欧几里德距离d满足390 <点的点的位置。 d&lt; 400.我也想让Matlab告诉我有多少元素满足这个条件。
我正在考虑使用“离散化”命令,但我不确定如何使用它。
对于如何做到这一点的任何帮助表示赞赏。
答案 0 :(得分:1)
如果效率不重要,我建议使用find
,例如
I = find(distance_center< 400 & distance_center >390 );
这样,I
表示您感兴趣的矩阵distance_center中的坐标,它在行坐标中占主导地位。您可以使用ind2sub
获取原始坐标。在你的情况下:
[i,j]=ind2sub(size(distance_center),I);
满足您要求的元素总数等于length(I)