在满足特定条件的情况下,将矩阵的元素分组

时间:2017-05-15 10:59:03

标签: arrays matlab

在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告诉我有多少元素满足这个条件。

我正在考虑使用“离散化”命令,但我不确定如何使用它。

对于如何做到这一点的任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果效率不重要,我建议使用find,例如

 I = find(distance_center< 400 & distance_center >390 );

这样,I表示您感兴趣的矩阵distance_center中的坐标,它在行坐标中占主导地位。您可以使用ind2sub获取原始坐标。在你的情况下: [i,j]=ind2sub(size(distance_center),I); 满足您要求的元素总数等于length(I)