Statistical programming, matrix languages, and more

Func (IML) to return the row and col position of element in m x n matrix?

Accepted Solution Solved
Reply
N/A
Posts: 0
Accepted Solution

Func (IML) to return the row and col position of element in m x n matrix?

I want to know if there is any SAS/IML function which returns the row and column location of an element with a M x N or N x N Matrix.

For example, I want to know the location of the smallest element in the matrix A. I can find the element using

>>a=loc(min(A));

This returns the elements value, but not the position within the matrix.

Even when I try

>>b=ncol(min(A));
>>c=nrow(min(A));

SAS/IML only return column=1 row=1, since it still recognizes the elements as a value, separate from the Matrix.

Appreciate any help you could give.

Accepted Solutions
Solution
4 weeks ago
SAS Super FREQ
Posts: 3,413

Re: Func (IML) to return the row and col position of element in m x n matrix?

Put the condition that you are searching for inside the LOC statement, as in
idx = loc( A = min(A) ); /* indices where A equals min(A) */
or, in general,
idx = loc( A = value ); /* indices where A equals 'value' */

The previous statements return ALL indices that satisfy the condition.
It turns out that for "index of minimum" and "index of maximum" there is a subscript reduction operator that returns the FIRST index that satisfies the condition. See
http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/workmatrix_sect14.htm

View solution in original post


All Replies
Solution
4 weeks ago
SAS Super FREQ
Posts: 3,413

Re: Func (IML) to return the row and col position of element in m x n matrix?

Put the condition that you are searching for inside the LOC statement, as in
idx = loc( A = min(A) ); /* indices where A equals min(A) */
or, in general,
idx = loc( A = value ); /* indices where A equals 'value' */

The previous statements return ALL indices that satisfy the condition.
It turns out that for "index of minimum" and "index of maximum" there is a subscript reduction operator that returns the FIRST index that satisfies the condition. See
http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/workmatrix_sect14.htm
☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 466 views
  • 0 likes
  • 2 in conversation