为了账号安全,请及时绑定邮箱和手机立即绑定

使用 for 循环替换矩阵中的值,但只保留最后替换的值

使用 for 循环替换矩阵中的值,但只保留最后替换的值

慕田峪9158850 2022-06-02 11:31:11
x_n = np.arange(0, 1.0, 0.25)u_m = np.arange(0, 1.0, 0.5)for x in range(len(x_n)):    for u in range(len(u_m)):        zeros_array = np.zeros( (len(x_n), len(u_m)) )        zeros_array[x,u] = x_n[x] - u_m[u]zeros_array  #resultarray([[ 0.  ,  0.  ],      [ 0.  ,  0.  ],      [ 0.  ,  0.  ],      [ 0.  ,  0.25]])仅保留最后替换的值。我想知道如何保留所有替换的值。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您在zeros_array循环的每次迭代中都初始化一个新的,所以当循环结束时,只保留最后一个值是直截了当的zeros_array,为了解决这个问题,您需要zeros_array在循环外定义一次并在内部不断更新它:


x_n = np.arange(0, 1.0, 0.25)

u_m = np.arange(0, 1.0, 0.5)


zeros_array = np.zeros((len(x_n), len(u_m)))


for x in range(len(x_n)):

    for u in range(len(u_m)):

        zeros_array[x, u] = x_n[x] - u_m[u]


print(zeros_array)

输出:


[[ 0.   -0.5 ]

 [ 0.25 -0.25]

 [ 0.5   0.  ]

 [ 0.75  0.25]]


查看完整回答
反对 回复 2022-06-02
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

你在循环中初始化了 zeros_array 所以它在每个循环中都这样做


做:


zeros_array = np.zeros((len(x_n),len(u_m)))

for x in range(len(x_n)):

    for u in range(len(u_m)):

        zeros_array[x,u] = x_n[x] - u_m[u]

输出:


array([[ 0.  , -0.5 ],

       [ 0.25, -0.25],

       [ 0.5 ,  0.  ],

       [ 0.75,  0.25]])


查看完整回答
反对 回复 2022-06-02
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信