Hallo Miteiander,
Hier ein Lösungsvorschlag für die Umwandlung einer Etable in ein Array und die anschließende Berechnung des geometrischen Mittelwertes.
!-----------------------------------------------------------------------
esel.... ! Elemente auswählen
*VGET,E_MASK,ELEM,,ESEL !erstellen eines Maskierungsvektors
etab,fxi,smisc,1 !z.B. TYP BEAM188 Längskraft
*Vmask,E_MASK !Maskierungsvektor setzen
*vget,ERG,ELEM,,ETAB,fxi !aus der ETABLE in das ARRAY ERG schreiben
!Das erzeugte ARRAY "ERG" hat die Länge bis zur höchsten definierten Elementnummer
! siehe *GET,MAX,ELEM,,num,maxd
! daher müssen die folgenden Vektorbefehle mit dem ARRAY "E_MASK" gefiltert werden.
!-----------------------------------------------------------------------
!Berechnen des geometrischen Mittelwertes für ARRAY "ERG"
!Ich habe deine Funktion für den geometrischen Mittelwert nicht gefunden.
!daher hier eine alternative Berechnungsmethode (siehe Wikipedia "geometrischer Mittelwert" in englisch)
*VMASK,E_MASK
*VFUN,LG_ERG,LOG,ERG(1) !natürlichen Logaritmus für jedes Element bilden
*VMASK,E_MASK
*VSCFUN,MW_LG_ERG,MEAN,LG_ERG(1) !Mittelwert für Vektor LG_ERG (skalar)
GEO_MITTEL=exp(MW_LG_ERG) !Geometrischer Mittelwert für
!.
!.
!-----------------------------------------------------------------------
Man könnte das ARRAY "ERG" auch mit den BEFEHLEN
*VMASK,E_MASK
*VFUN,ERG_COMP,COMP,ERG(1)
Dann sind nur noch die elemente Vorhanden, die zu den selektierten Elementen gehören
Man kann dann auf den Befehl "*VMASK,E_MASK" bei den folgenden Arrayoperationen verzichten
Vielleicht hilft es ja
------------------
Gruß
Jürgen Sundermeyer
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP