MATLAB:将两个数组转换为稀疏矩阵

aag*_*ard 0 matlab sparse-matrix

我正在寻找一个命令或技巧来将两个数组转换为稀疏矩阵.这两个数组包含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
Run Code Online (Sandbox Code Playgroud)

这个小技巧有一个简单的方法吗?

Jon*_*nas 5

假设xy具有相同的形状(他们应该这么做,如果他们坐标),你可以简单地写

commonIndices = find(x > 0.1 & x < 0.9 & y > 0.4 & y < 0.8);
Run Code Online (Sandbox Code Playgroud)

如果您想要一种通用方法来查找两个列表共有的数字,可以使用相交

commonEntries = intersect(x_i,y_i);
Run Code Online (Sandbox Code Playgroud)