Addition von Single Arrays

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Donnerstag 16. Februar 2017, 19:45

@Sirius3: Ist aber eher unwahrscheinlich wenn man sich die Verwendung ansieht. Da haben die Elemente ja eine Methode die Floats liefert. Mehrzahl.
Hanso
User
Beiträge: 7
Registriert: Mittwoch 15. Februar 2017, 10:48

Freitag 17. Februar 2017, 12:38

Danke für eure Hilfe erstmal. Ich habe das mit der Umwandlung probiert, allerdings hab ich die geeignete Methode noch nicht gefunden. float, int, Long funktionieren nicht. Die Fehlermeldung lautet:

TypeError: float()argument must be a string or a number, not 'FieldValue'

Allerdings konnte ich nicht herausfinden, wie ich die Umwandlung auf FieldValue anwenden kann
Sirius3
User
Beiträge: 7601
Registriert: Sonntag 21. Oktober 2012, 17:20

Freitag 17. Februar 2017, 13:08

@Hanso: ja FieldValue haben noch eine Unterstruktur, aber die hast Du ja schon in eigenen Deinem Programm aufgelöst, denn sonst könntest Du ja numpy.savetxt nicht verwenden.

Code: Alles auswählen

def read_nodeset(odb, anz_frames, nodeset):
    result = []
    for i in range(1,anz_frames+1):
        values = odb.steps['Step-1'].frames[i].fieldOutputs['U'].getSubset(region=odb.rootAssembly.nodeSets[nodeset]).values
        result.extend(v.dataDouble[1] for v in values)
    return numpy.array(result)

ovalues = read_nodeset(odb, anz_frames, "VO")
uvalues = read_nodeset(odb, anz_frames, "VU")
summe = ovalues + uvalues
Ist dieses anz_frames überhaupt notwendig, oder könnte man auch direkt über odb.steps['Step-1'].frames iterieren?

Code: Alles auswählen

def read_nodeset(odb, nodeset):
    result = []
    for frame in odb.steps['Step-1'].frames:
        values = frame.fieldOutputs['U'].getSubset(region=odb.rootAssembly.nodeSets[nodeset]).values
        result.extend(v.dataDouble[1] for v in values)
    return numpy.array(result)

ovalues = read_nodeset(odb, "VO")
uvalues = read_nodeset(odb, "VU")
summe = ovalues + uvalues
Hanso
User
Beiträge: 7
Registriert: Mittwoch 15. Februar 2017, 10:48

Freitag 17. Februar 2017, 15:36

@Sirius3: Danke, auf diese Weise funktioniert das Programm jetzt. Die einfachere Variante ohne anz_frames funktioniert ebenfalls. Jetzt kann ich mit dieser Struktur auch den Rest meines Programms vervollständigen. Ich danke vielmals allen die mir geholfen haben.
Antworten