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 .
From The DO Loop
Want more? Visit our blog for more articles like these.
Discussion stats
  • 1 reply
  • 1565 views
  • 0 likes
  • 2 in conversation