Finding the position of a row vector in an array

1 view (last 30 days)
Hi
I have a 1x127 row vector in variable S and have read a 500x127 array from excel spreadsheet into variable V. Then i'm checking if S exists in V using function ' ismember '. If it returns a value 1, I need to find the location of S in the excel spreadsheet and then replace it by new vector Y.
For example:
Consider a small array,
A=[1 0 1 1 1;
1 1 0 1 0;
1 0 1 1 0;
0 1 0 1 1;
0 0 1 0 1];
S=[1 0 1 1 0];
val=ismember(S,A);
Y=[1 1 1 1 1];
This will return 1. Now how can I find the location of [1 0 1 1 0] which is 3rd row here and then insert Y inplace of [1 0 1 1 0] in A, so that the modified matrix will be:
A=[1 0 1 1 1;
1 1 0 1 0;
1 1 1 1 1;
0 1 0 1 1;
0 0 1 0 1];
I want to know the location of S in A considering S as one single entity.
Thank you.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 20 May 2013
Edited: Azzi Abdelmalek on 20 May 2013
[idx,idx]=ismember(A,[1 0 1 1 0],'rows')
A(logical(idx),:)=[1 1 1 1 1]

More Answers (0)

Community Treasure Hunt

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

Start Hunting!