Ich möchte den Index eines Wertes in der symbolischen Matrix finden. Zum Beispiel möchte ich den Index finden, der das 'Zc'-Symbol in der unteren Q-Matrix hat.Wie findet man den Index eines Elements in symbolischer Matrix basierend auf einem Symbol?
from sympy import symbols, Matrix
Zc,Yc,L=symbols("Zc Yc L",real=True)
Q=Matrix(([0,Zc,-Y],[-Zc*L,0,L/2],[Yc,-L/2,0]))
erwartete Antwort ist [(0,1), (1,0)].
I mit numpy.where versucht, aber es ergab ein leerer set.That ist,
numpy.where(A in K_P.free_symbols)
es als eine leere Menge gegeben, (Array ([0] = dtype int64)
Teil 2: Wenn die Q-Matrix
Q=Matrix(([0,Zc*L/6,-Yc],[-L*Zc/12,0,L/2],[Yc,-L*Zc*Yc/2,0]))
ist, wenn ich den Index auf einem Produkt von symb Basis finden möchte B. Zc*L
. Wie soll ich weitermachen? Es sollte mir Index geben, wenn der Wert Zc*L
und L*Zc
ist. Aber nicht der Index -L*Zc*Yc/2
. Also erwartete Antwort ist [(0,1),(1,0)]
.
Vielen Dank für Ihre Antwort. Ich habe noch eine Frage zur ähnlichen Linie. Wenn ich den Index basierend auf einem Symbolprodukt wie Zc * L finden muss. Wie soll ich weitermachen? Ich habe meine Frage bearbeitet, um diese Frage in Teil 2 aufzunehmen, und eine detaillierte Beschreibung ist oben angegeben. –
In der zweiten Antwort, die Sie angegeben haben, wenn der 'for-Schleife'-Bereich 3 ist, gibt es den Index aller Produktsymbole, Zc * L. Also gibt dieser Code, [[0, 1], [1, 0], [2, 1]]. Aber das [2, 1] -Element ist -L * Zc * Yc/2. Ich möchte nicht, dass dies in das Indexarray aufgenommen wird. Ich will nur den Index des Produkts zwischen Zc und L (nicht L * Zc * Yc). Wie kann ich das machen? –
Die Anforderungen werden immer vager, aber ich habe eine Version dafür hinzugefügt. – FTP