BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
NewbieRaph
Calcite | Level 5

Hi everybody,

 

I hope this message finds you well.

I have a matrix, let's say MAT, and I would like to make the product of the elements on each row and output the resulting vector in VEC.

So VEC i = product MAT[ i , 1:NCOL(MAT)].

I simply figured it out using a do loop as follows:

     do i = 1 to nrow(MAT);
        do r = 1 to ncol(MAT);
          VEC [ i ,1]=VEC [i,1]*MAT[i,r];
       end;
    end;

 

But it takes too much time to run the above instructions since I have to run the same instructions 300,000 times (in different scenarios).

 

Do you have any better idea to optimize the runtime?

Thanks a lot in advance.

Raphaël

 

1 ACCEPTED SOLUTION

Accepted Solutions
Rick_SAS
SAS Super FREQ
vec = mat[ , #];

SAS/IML supports many elementwise operations. Two articles you might want to read are:

 

"Use subscript reduction operators"

and

"Compute statistics for each row by using subscript operators"

 

View solution in original post

4 REPLIES 4
Rick_SAS
SAS Super FREQ
vec = mat[ , #];

SAS/IML supports many elementwise operations. Two articles you might want to read are:

 

"Use subscript reduction operators"

and

"Compute statistics for each row by using subscript operators"

 

NewbieRaph
Calcite | Level 5

Thanks Rick! 🙂

It works perfectly and is 60 seconds faster for 20 scenarios.

You are my savior!

 I notice that you already posted it 3 years ago in your second link...

 

Raphael

 

 

Rick_SAS
SAS Super FREQ

Great. Remember to click the "Accept as Solution" button so that others can see that the question has been answered.

NewbieRaph
Calcite | Level 5

Done!!

 

Raphaël

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Multiple Linear Regression in SAS

Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.

Find more tutorials on the SAS Users YouTube channel.

From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 4 replies
  • 1074 views
  • 0 likes
  • 2 in conversation