我正在寻找一个命令或技巧来将两个数组转换为稀疏矩阵。这两个数组包含x值和y值,它们给出了笛卡尔坐标系中的坐标。我想对坐标进行分组,如果值在x轴和y轴上的某个值之间。
% MATLAB
x_i = find(x > 0.1 & x < 0.9);
y_i = find(y > 0.4 & y < 0.8);
%Then I want to find indicies which are located in both x_i and y_i
这个小技巧有一个简单的方法吗?
答案 0 :(得分:5)
假设x
和y
具有相同的形状(如果它们是坐标则应该是它们),您可以简单地写
commonIndices = find(x > 0.1 & x < 0.9 & y > 0.4 & y < 0.8);
如果您想要一种通用方法来查找两个列表共有的数字,可以使用交叉
commonEntries = intersect(x_i,y_i);