How To: Multi-level subindexing
Mostrar comentarios más antiguos
I'm tryig to achieve a proper 1-line ndex/sub-indexing operation, but have thus far failed to get the syntax right
ArrayA = sparse(100,100000);
ArrayA(randi(100*100000,[7000 1])) = (82-36).*rand(7000,1)+36;
[ArrayAFull(:,1),ArrayAFull(:,2),ArrayAFull(:,3)] = find(ArrayA);
ArrayB = sparse(100,100000);
ArrayB(randi(100*100000,[7000 1])) = (90-30).*rand(7000,1)+30;
[ArrayBFull(:,1),ArrayBFull(:,2),ArrayBFull(:,3)] = find(ArrayB);
[~,IdxA,IdxB] = intersect(ArrayAFull(:,[1,2]),ArrayBFull(:,[1,2]),'stable','rows');
t1 = ArrayBFull(ArrayBFull(IdxB,1)==1,:); %This is where things go sour
%The next two lines get me the actually desired matrix
t2 = ArrayBFull(IdxB,:);
t2 = t2(t2(:,1)==1,:);
isequal(t1,t2); %false
Is it possible to compress the t2 lines into a single line, or no?
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!