我知道python做矩陣乘法的能力。 不幸的是,我不知道如何抽象地做到這一點?所以不要用 確定的數字,而是用變量。抽象矩陣乘法與變量
例子:
M = (1 0) * (1 d)
(a c) (0 1)
是否有某種方式來定義a,c和d,使矩陣乘法 給我
(1 d )
(a a*d + c)
?
我知道python做矩陣乘法的能力。 不幸的是,我不知道如何抽象地做到這一點?所以不要用 確定的數字,而是用變量。抽象矩陣乘法與變量
例子:
M = (1 0) * (1 d)
(a c) (0 1)
是否有某種方式來定義a,c和d,使矩陣乘法 給我
(1 d )
(a a*d + c)
?
使用sympy你可以這樣做:
>>> from sympy import *
>>> var('a c d A B')
(a, c, d, A, B)
>>> A = Matrix([[1, 0], [a, c]])
>>> A
Matrix([
[1, 0],
[a, c]])
>>> B = Matrix([[1, d], [0, 1]])
>>> B
Matrix([
[1, d],
[0, 1]])
>>> M = A.multiply(B)
>>> M
Matrix([
[1, d],
[a, a*d + c]])
就像任何變量一樣,數組/矩陣只能用特定值初始化。你能做的唯一的事情就是讓功能,使初始化更容易
import numpy as np
def helper(a, c, d):
A = np.array([[1, 0], [a, c]])
B = np.array([[1, d], [0, 1]])
return A @ B
(其中@
操作員明確的矩陣乘法運算符)
是否應該有一個函數名? – Asterisk
@星號:是的,當然,這是一個正常的功能。修正了錯字。 –
有一個看看'sympy',一個用於符號計算的Python庫。 – dseuss