1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
DATA base;
INPUT var1 var2;
cards ;
1 11
10 22
;
RUN;
/*création de la macro variable*/
%MACRO test();
DATA base2;
SET base;
CALL SYMPUT (COMPRESS("mavar"||left(put(_N_,4.))),var1);
RUN;
%MEND test;
%test();
%PUT &mavar1;
%macro integrale( fun_t, B_inf, nomMacro,nb);
/*nb représente le nombre de valeurs de ta table*/
/*nomMacro=mavar*/
proc iml;
/* Definition de l'intégrale */
start fonction(t);
v = &fun_t;
RETURN(v);
finish;
%do i=1 %TO &nb;
%let val=&&nomMacro&i;
/* Call QUAD */
a = { &B_inf &val };
call quad(z,"fonction",a);
print z[format=E21.14];
%end;
quit;
%mend integrale;
%integrale(t,0,var1,2); |
Partager