- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 12-29-2019 06:41 PM
(807 views)
I would like to compare every row of matrix x (let's say 200 by 29) with each row of matrix y (150,29) one at a time.
So for example row 1 in X compared to rows 1 to 150 in y to see if they both elements equal 1. If yes, set new matrix to 1.
Something like below:
do i=1 to 200;
do j=1 to 150;
does x[i,]=y[j,] ? if yes new matrix say z[i,}=1;
end;
end;
z would have 200 rows and 29 columns.
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The question isn't clear.
So for example row 1 in X compared to rows 1 to 150 in y to see if they both elements equal 1.
What does "if they both elements equal 1" mean?
z would have 200 rows and 29 columns.
Wouldn't the result be (150*200)x1?
--
Paige Miller
Paige Miller
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Post some data and output you want could better explain your question !!
proc iml;
x={1 0,
0 1,
1 1};
y={1 1,
1 1};
z=j(nrow(x),1,.);
do i=1 to nrow(x);
if all(x[i,]=y) then z[i]=1;
end;
print z;
quit;