首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python构造基于不同列表的矩阵

用Python构造基于不同列表的矩阵
EN

Stack Overflow用户
提问于 2017-10-27 15:29:08
回答 1查看 54关注 0票数 1

我将制作以下矩阵:

代码语言:javascript
复制
 s= [[s11 s12 s13]
     [s21 s22 s23]
     [s31 s32 s33]]

其中,我可以通过以下方法获得矩阵的每个数组:

代码语言:javascript
复制
 sii = a(i)  ;  for s11, s22, and s33

 sij = a(i)**2 + 10    ;  for s12=s21, s23=s32, and s13=s31

在这里,ai是一个数据列表:

代码语言:javascript
复制
 a = [0.1, 0.25, 0.12]

因此,当我使用以下内容时:

代码语言:javascript
复制
import numpy as np 

s = np.ones([3,3])

def matrix(s):
a = [0.1, 0.25, 0.12]
s[np.diag_indices_from(s)] = ai
s[~np.eye(s.shape[0],dtype=bool)] = ai**2 + 10

这给了我一个错误。我该如何解决这个问题?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 15:56:41

以下是如何操作对角线和非对角线值的提示。

代码语言:javascript
复制
import numpy as np

s = np.ones([3,3])

def matrix(s):
    a = [1,2,3]
    for i in range(len(a)):
        s[i,i] = a[i] #  sii = a(i) 
        rc = (i + 1) % len(a)
        val = a[i] ** 2 + 10 
        s[i, rc] = val # sij = a(i)**2 + 10 
        s[rc, i] = val # sij = a(i)**2 + 10 
    return s

print(matrix(s)) 

投入:

代码语言:javascript
复制
[[ 1.  1.  1.]
 [ 1.  1.  1.]
 [ 1.  1.  1.]]

产出:

代码语言:javascript
复制
[[  1.  11.   19.]
 [ 11.   2.  14.]
 [  19.  14.   3.]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46978585

复制
相关文章

相似问题

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