MATLAB: преобразовать два массива в разреженную матрицу

Я ищу команду или трюк для преобразования двух массивов в разреженную матрицу. Два массива содержат значения 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

Есть ли простой путь к этому маленькому трюку?


person aagaard    schedule 27.04.2010    source источник


Ответы (1)


Предполагая, что x и y имеют одинаковую форму (что и должно быть, если они являются координатами), вы можете просто написать

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

Если вам нужен общий способ поиска чисел, общих для двух списков, вы можете использовать пересечение

commonEntries = intersect(x_i,y_i);
person Jonas    schedule 27.04.2010
comment
Хороший! Спасибо, это было именно то, что я искал. - person aagaard; 28.04.2010