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 .