File Exchange

## FINDARRAY

version 1.2.0.0 (1.72 KB) by
Find one array within another.

1 Download

Updated 16 Nov 2010

View License

FINDARRAY Find one array within another
I = FINDARRAY(A,B,'first') for the array B returns an index array of
the same size as B containing the smallest absolute index in A for each
element of B which is a member of A and 0 if there is no such index.
FINDARRAY(A,B) is the same as FINDARRAY(A,B,'first').

I = FINDARRAY(A,B,'last') for the array B returns an index array of
the same size as B containing the highest absolute index in A for each
element of B which is a member of A and 0 if there is no such index.

I = FINDARRAY(A,B,'all') returns a NDIMS(B)+1 dimensional array such
that I(:,...,k) contains the k-th absolute index in A for each element
of B, 0 otherwise.

See also find, ismember

Example:

>> findarray(pascal(3),magic(2),'all')

ans(:,:,1) =
1 6
0 5
ans(:,:,2) =
2 8
0 0
ans(:,:,3) =
3 0
0 0
ans(:,:,4) =
4 0
0 0
ans(:,:,5) =
7 0
0 0

### Cite As

Mukhtar Ullah (2021). FINDARRAY (https://www.mathworks.com/matlabcentral/fileexchange/6018-findarray), MATLAB Central File Exchange. Retrieved .

### Comments and Ratings (2)

Mukhtar Ullah

This function can replace FINDMEMBER that has been removed from the file exchange.

urs Schwarz (us)

unfortunately, this solution is several times faster (JIT-acc) and - more importantly - doesn't use as much memory:

ixi=zeros(size(b));
ixa=zeros(size(b));
for i=1:length(a)
ia=strfind(a,a(i));
ib=strfind(b,a(i));
ixi(ib)=ia(1);
ixa(ib)=ia(end);
end

us

##### MATLAB Release Compatibility
Created with R2010b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!