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

时间:2010-04-27 20:31:54

标签: 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

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

1 个答案:

答案 0 :(得分:5)

假设xy具有相同的形状(如果它们是坐标则应该是它们),您可以简单地写

commonIndices = find(x > 0.1 & x < 0.9 & y > 0.4 & y < 0.8);

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

commonEntries = intersect(x_i,y_i);