首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python矩阵取代全局矩阵中定义的矩阵.类似于Matlab

Python矩阵取代全局矩阵中定义的矩阵.类似于Matlab
EN

Stack Overflow用户
提问于 2013-11-15 11:34:40
回答 1查看 821关注 0票数 2

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

代码语言:javascript
复制
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 ]

在locations,loc =3 5,因此结果矩阵B如下所示:

代码语言:javascript
复制
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中,代码很简单:

代码语言:javascript
复制
A(loc,loc) = C

我试过它是蟒蛇:

代码语言:javascript
复制
A[loc,loc] = C

但没有成功。有什么想法吗?任何使用局部刚度模型填充全局刚度矩阵的人,都会多次执行该操作,但通常如下所示:

代码语言:javascript
复制
K(loc,loc) = K(loc,loc) + C

不管怎么说,我希望这是一个好问题?我还没找到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-15 11:45:57

代码语言:javascript
复制
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

产出:

代码语言:javascript
复制
[[ 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]]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20000185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档