BookmarkSubscribeRSS Feed
cmshaw91
Calcite | Level 5

Hello all,

 

My organization does not have IML, only base SAS. So I'm using a macro compute matrix multiplications. This macro works but I have another macro that does matrix multiplaction i number of times.  When I run the following macro it only gives me a one period ahead matrix when it should give 6. Any thoughts?

 

%macro loop (n=);
%do i = 2 %to &n.;
data _null_; i_minus_1= &i.-1; call symput( 'i_minus_1', i_minus_1); run;
%if &i.=2 %then %do;
    %mat_product (in_data1 = m1
    ,in_data2 = m1
    ,out_data = m&i. );
  %end;
  %else %do;
   %mat_product (in_data1 = m1 , in_data2 = m&i_minus_1., out_data= m&i.);
  %end;
%end;
%mend;

%loop (n=6);

 

 

1 REPLY 1
Ksharp
Super User
I would use DATA STEP to calculate ,not MACRO which would lost accuracy .

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

Register now

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