gpt4 book ai didi

Python Numpy - 矩阵替换全局矩阵中定义的矩阵..类似于Matlab

转载 作者:行者123 更新时间:2023-11-28 21:57:19 25 4
gpt4 key购买 nike

有没有人能用 Python 快速解决这个问题。在矩阵 A 中,我希望在某个位置用 C 矩阵替换 A 中的值?

A=  [ 1 2 3 4 4
2 3 4 5 3
4 5 6 7 2
5 6 7 8 9
6 7 8 9 0 ]

C= [ 7 7
7 7 ]

在位置 loc = [3 5] 使得结果矩阵 B 如下所示:

B=  [ 1 2 3 4 4
2 3 4 5 3
4 5 7 7 7
5 6 7 8 9
6 7 7 9 7 ]

在 Matlab 中,代码很简单:

A(loc,loc) = C

我试过是python:

A[loc,loc] = C

没有成功。有任何想法吗?任何用局部刚度模型填充全局刚度矩阵的人都会多次重复该操作,但通常看起来像这样:

K(loc,loc) = K(loc,loc) + C

无论如何,我希望这是一个好的问题?我还没有找到答案。

最佳答案

import numpy as np

A = np.array([ 1, 2, 3, 4, 4,
2, 3, 4, 5, 3,
4, 5, 6, 7, 2,
5, 6, 7, 8, 9,
6, 7, 8, 9, 0 ]).reshape(5, 5)

B = np.array([60, 70, 80, 90]).reshape(2, 2)

A[2:6:2, 2:6:2] = B # or
A[np.ix_([2, 4], [2, 4])] = B

print A

输出:

[[ 1  2  3  4  4]
[ 2 3 4 5 3]
[ 4 5 60 7 70]
[ 5 6 7 8 9]
[ 6 7 80 9 90]]

关于Python Numpy - 矩阵替换全局矩阵中定义的矩阵..类似于Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com