python 矩阵元素如何表示_如何在Python中为矩阵中的每个元素应用函数?

我有一个三角形矩阵,其中每条直线有3个垂直方向:

元素集:Element Number Vertices

2 473 1159 917

3 271 1026 816

我也有一个节点矩阵,它为每个垂直点指定一个二维坐标

节点集:

^{pr2}$

我写了一些处理面积计算的方法,它们包含在一个类中:def findArea(self):

self.elementsArea = nu.zeros((self.elementSet.shape[0],1))

self.elementsArea[:] = self.calcArea(*self.elementSet[:,-3:])

#Calculate the area of 3 points

def calcArea (self,p1,p2,p3):

[p1,p2,p3] = [self.nodeCoord(p1),self.nodeCoord(p2),self.nodeCoord(p3)]

return 0.5*abs(p1[Xc]*(p2[Yc] - p3[Yc]) + p2[Xc]*(p3[Yc]-p1[Yc]) + p3[Xc]*(p1[Yc] - p2[Yc]))

# returns the vertices of a point

def nodeCoord(self, point):

return(self.nodeSet[point-1,-3:-1])

其中函数calcArea工作正常,但我想将函数应用于矩阵的每个元素,并在不使用循环的情况下分配给另一个矩阵。在

我必须写一些东西,比如:A[:] = func(B[:])

在def findArea()中,我试图做这样的事情,但它给了我以下错误:calcArea() takes 4 positional arguments but 2171 were given

我想用calrea()来计算作为参数的区域传递数组,方法与我在本例中所做的相同:import numpy as np

def test(x,y):

return x*y

f = np.array([[1,2,5,6,7] , [3,4,9,6,7] ,[6,7,23,34,32]])

print(test(f[0,:],f[1,:]))

我试图应用calarea方法,但我现在只得到了一个2dimmensions数组,而我本应该得到一个与原始向量相同的dimmension数组a.calcArea(f[0,:],f[1,:],f[2,:])

array([ 7.5, 0. ])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值