【问题标题】:try to print out a matrix NameError: name 'Qb_matrix' is not defined尝试打印出一个矩阵 NameError: name 'Qb_matrix' is not defined
【发布时间】:2019-11-15 11:31:26
【问题描述】:

我尝试使用以下代码打印出一个矩阵,但是,它显示了名称错误。 我想知道我应该在哪里具体定义矩阵? python能把Qb的缩写识别成Q_bar吗?

import numpy as np

Q11 = 14.583
Q12 = 1.4583
Q23 = 0
Q22 = 3.646
Q33 = 4.2
theta = 60

def Q_bar(Q11, Q12, Q22, Q33, theta):


n = np.sin(theta*np.pi/180)
m = np.cos(theta*np.pi/180)
Qb_11 = Q11*m**4 + 2*(Q12 + 2*Q33)*n**2*m**2 + Q22*n**4
Qb_22 = Q11*n**4 + 2*(Q12 + 2*Q33)*n**2*m**2 + Q22*m**4
Qb_33 = (Q11 + Q22 - 2*Q12 - 2*Q33)*n**2*m**2 + Q33*(m**4 + n**4)
Qb_12 = (Q11 + Q22 - 4*Q33)*n**2*m**2 + Q12*(m**4 + n**4)
Qb_13 = (Q11 - Q12 - 2*Q33)*n*m**3 + (Q12 - Q22 + 2*Q33)*n**3*m
Qb_23 = (Q11 - Q12 - 2*Q33)*n**3*m + (Q12 - Q22 + 2*Q33)*n*m**3
Qb_matrix = np.array([[Qb_11, Qb_12, Qb_13],[Qb_12, Qb_22, Qb_23],[Qb_13, Qb_23, Qb_33]])
return(Qb_matrix)

print(Qb_matrix)

【问题讨论】:

  • 你永远不会调用你的函数,所以它里面的代码永远不会运行。此外,如果您确实调用了函数,则需要捕获返回值,因为 Qb_matrix 将仅存在于函数的范围内

标签: arrays python-3.x matrix nameerror


【解决方案1】:

你永远不会调用你的函数,所以它里面的代码永远不会被执行。更进一步,即使您确实调用了该函数。您在函数中创建的变量 Qb_matrix 将仅存在于函数范围内,当您返回它时,您需要存储该返回值。

import numpy as np

Q11 = 14.583
Q12 = 1.4583
Q23 = 0
Q22 = 3.646
Q33 = 4.2
theta = 60

def Q_bar(Q11, Q12, Q22, Q33, theta):
    n = np.sin(theta*np.pi/180)
    m = np.cos(theta*np.pi/180)
    Qb_11 = Q11*m**4 + 2*(Q12 + 2*Q33)*n**2*m**2 + Q22*n**4
    Qb_22 = Q11*n**4 + 2*(Q12 + 2*Q33)*n**2*m**2 + Q22*m**4
    Qb_33 = (Q11 + Q22 - 2*Q12 - 2*Q33)*n**2*m**2 + Q33*(m**4 + n**4)
    Qb_12 = (Q11 + Q22 - 4*Q33)*n**2*m**2 + Q12*(m**4 + n**4)
    Qb_13 = (Q11 - Q12 - 2*Q33)*n*m**3 + (Q12 - Q22 + 2*Q33)*n**3*m
    Qb_23 = (Q11 - Q12 - 2*Q33)*n**3*m + (Q12 - Q22 + 2*Q33)*n*m**3
    Qb_matrix = np.array([[Qb_11, Qb_12, Qb_13],[Qb_12, Qb_22, Qb_23],[Qb_13, Qb_23, Qb_33]])
    return(Qb_matrix)

my_qb_matrix = Q_bar(Q11, Q12, Q22, Q33, theta)
print(my_qb_matrix)

输出

[[ 6.659175    1.179375    2.52896738]
 [ 1.179375   12.127675    2.20689254]
 [ 2.52896738  2.20689254  3.921075  ]]

【讨论】:

    猜你喜欢
    • 2022-12-02
    • 2012-05-22
    • 2013-04-09
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 2020-11-07
    • 2017-01-09
    相关资源
    最近更新 更多