Search code examples
sassas-macrosas-iml

how to multiply each row with each row of another matrix elementwise in sas?


I have a row matrix (vector) A and another square matrix B. How can I multiply each row of matrix B with the row matrix A in SAS using proc iml or otherwise?

Let's say

a = {1 2 3}
b =
{2 3 4
1 5 3
5 9 10}

My output c would be:

{2 6 12
1 10 9
5 18 30}

Thanks!


Solution

  • Use the element-wise multiplication operator, # in IML:

    proc iml;
    a = {1 2 3};
    b = {2 3 4, 
         1 5 3,
         5 9 10};
    
    c = a#b;
    print c;
    quit;