Matrizen multiplizieren

Mal wieder eine Frage von mir:
Ich möchte zwei 813 X 813 Matrizen addieren bzw. multiplizieren. Dabei soll Element 11 der einen mit Element 11 der anderen Matrix addiert / multipliziert werden, dann 12 mit 12 usw. Es handelt sich um zwei Einheitsmatrizen, so dass als Ergebnis wieder eine Einheitsmatrix entstehen sollte.

Weiss jemand Rat?

Vielen Dank!

PROC IML

Nutzen Sie Proc IML,

eine kurze Einführung findet man beispielsweise unter:
http://www.urz.uni-heidelberg.de/statistik/sas-ah/
Mit den Operator "+" werden Matrizen elementweise addiert und mit "#" elementweise multipliziert.

Sorry, stehe auf dem Schlauch

So geht es auf jeden Fall nicht:

PROC IML;
F={F};
M={M};

P = M#F;
RUN;

Die Matrizen, die addiert bzw. multipliziert werden sollen sind F und M. Hat noch jemand einen Tipp?
Viele Grüsse

Das folgende Zahlenbeispiel

Das folgende Zahlenbeispiel sollte funktionieren. Die Matrix c enthält die elementweisen Produkte von a und b.

Proc IML;

a = {
1 2 3,
    
4  5  6};
b= {
1  2 3,
    
4 5 6};

c= a#b;

print a b c;

Run;
Quit;

P.S.: SAS-Datensätze können Sie im IML-Code wie folgt einlesen (hier werden bspw. alle numerischen Daten des Datensatzes mit Namen "file" im library "libname" in die Variable "variablenname" eingelesen):

use libname.file;
read all var _NUM_ into variablenname;
close libname.file;
Über den vergebenen Variablennamen können Sie ab dann die jeweilige Matrix ansprechen.

Ich komme der Sache näher...

...jetzt habe ich nur noch einen klitzekleinen Hinweis nach "RUN":

HINWEIS: Module MAIN is undefined in IML; cannot be RUN

Und was will der mir sagen??? Den bekomme ich auch, wenn ich das Beispielprogramm von meinem "Vorredner" verwende...

Hab den Fehler selber gefunden: RUN ist überflüssig, so läuft es jetzt...Danke!!

Jetzt läuft das Programm

Jetzt läuft das Programm zwar ohne Hinweise und Fehlermeldungen und ich kann mir auch mit


Print DM;
Print DF;
Print P;

die entsprechende Matrizen anzeigen lassen. Soweit alles richtig, aber warum tauchen sie im Explorer nicht namentlich in der "work"-Bibliothek auf???

Das ganze Programm sieht folgendermassen aus:


PROC IML;

USE ARMUT.Frauendistanz; READ ALL VAR _NUM_ INTO FD; CLOSE ARMUT.Frauendistanz;
USE ARMUT.Distanzm; READ ALL VAR _NUM_ INTO MD; CLOSE ARMUT.Distanzm;

/*
PRINT FD;
PRINT MD;*/

P = FD+MD;

PRINT P;



QUIT;