Если у вас нет указателей, хранящихся где-то вдали, я не вижу, чтобы у вас был большой выбор.
tmp = find(B);
idx = tmp(C);
В случае, если вы действительно хотите использовать это отображение более чем один раз, я хотел бы предложить вам хранить индексы вместо двоичного вектора. Это также будет более эффективным с точки зрения памяти, если бинарный вектор разрежен (или не является логическим вектором), так как вам потребуется меньше записей.
В случае, если вам также нужен бинарный вектор, вы должны хранить оба в случае, если позволяет память. Когда я сделал такое отображение в Matlab, я фактически использовал как бинарный вектор (маску), так и индексный вектор. Это спасло меня от первого сопоставления маски с индексом, а затем индексацию в отфильтрованную позицию (так сказать, пропуская часть tmp = find(B); idx = tmp(C);
каждый раз и переходите непосредственно к idx = allIdx(C)
).
как о B (C)? – drorco
у меня есть 1. но я хочу найти место – Acobot
Я все еще не могу получить изображение, как «A» и «B» подключены, и что вы подразумеваете под ** истинным местоположением в B = 8 **. В 'B' нет элемента' 8', ни в 'A'. – Crowley