㈠ 使用python编写一个三维向量,实现向量的加法减法,点乘叉乘
#--coding:gb2312--
classvector3:
def__init__(self,x_=0,y_=0,z_=0):#构造函数
self.x=x_
self.y=y_
self.z=z_
def__add__(self,obj):#重载+作为加号
returnvector3(self.x+obj.x,self.y+obj.y,self.z+obj.z)
def__sub__(self,obj):#重载-作为减号
returnvector3(self.x-obj.x,self.y-obj.y,self.z-obj.z)
def__mul__(self,obj):#重载*作为点乘
returnvector3(self.x*obj.x,self.y*obj.y,self.z*obj.z)
def__pow__(self,obj):#重载**作为叉乘。不好,偏离了常理上的意义,可以考虑重载其他符号,或者直接写函数。
returnvector3(self.y*obj.z-obj.y*self.z,self.z*obj.x-self.x*obj.z,self.x*obj.y-obj.x*self.y)
def__str__(self):#供print打印的字符串
returnstr(self.x)+','+str(self.y)+','+str(self.z)
v1=vector3(1,2,3)
v2=vector3(0,1,2)
printv1+v2
printv1-v2
printv1*v2
printv1**v2
结果:
㈡ python 中 numpy 的(2,1)维列向量 为什么可以乘(2,2)维向量
numpy中直接用 * 即可表示数与向量的乘法,参考python 2.7的一个例子:
inport numpy as np
a = np.array([1,2,3,4]) # 向量
b = 5 # 数
print a*b
++++++++++++
[5,10,15,20]
㈢ 在python中怎么使用旋转矩阵实现矩阵的相乘,怎么表达出旋转矩阵
矩阵相乘很简单,你甚至可以自己写一个,现成的推荐 http://www.numpy.org
三维空间中旋转的表示:四元数,旋转矩阵,旋转向量,角轴,欧拉角
python中貌似没有Eigen那么方便的库,可以使用quaternion,里面有相应的方法提供他们之间的转换
㈣ python:如何将列表中的所有项相乘
#-*-coding:utf-8-*-
#py3
'''
用高级函数rece()
'''
fromfunctoolsimportrece
lis=[1,2,3,4,5]
r=rece(lambdax,y:x*y,lis)#对序列lis中元素逐项相乘lambda用法请自行度娘
print(r)
fromfunctoolsimportrece
defadd(x,y):
returnx+y
rece(add,[1,2,3])
#结果是6
㈤ Python 里面向量该怎样运算
首先要写上这一句:
from numpy import *
(写上这句的前提也得你已经安了numpy)
(1) 定义一个零向量(4维):
>>>a=zeros(4)
>>>a
array([0.,0.,0.,0.])
定义一个List:
b=[1,2,3,4]
(2)向量可直接与List相加:
>>>c=a+b
>>>c
array([1.,2.,3.,4.])
(3)要给向量里每个元素都乘以同一个数:
>>>d=b*[3]
或者:
>>>c=3
>>>d=b*[c]
>>>d
array([3.,6.,9.,12.])
而不能是d=b*3,即要乘的这个数字得是个List形式
(4)两个向量相除(对应元素相除):
>>>e=[3,2,3,4]
>>>f=d/e
>>>f
array([1.,3.,3.,3.])
㈥ python的乘法怎么表示
python中的乘法用*表示,切记不可以用中文书写方式,一定要是全英文的
㈦ python的例题解法
不看numpy一维数组的话,就是len相同的一个列表相同索引值相加吧。
x1=[1,2,3]
x2=[4,5,6]
x3=[]
defadd():
foriinrange(0,len(x1)):
x3.append(x1[i]+x2[i])
returnx3
print(add())
㈧ Python中怎样计算两个向量的内积
这是从物理实践中来,在物理计算中,经常会用到一个向量投影到另一个向量的方向,然后再乘以另一个向量的模.而且这样的算法表示固定的物理意义.由于经常会遇到这种问题,于是有人就这样定义了内积,是为了便于书写和直观辨认.一个式子太长或太复杂就会给计算带来很多的不便,定义了简便的式子有助有从数学上理解物理.至于为什么两个向量的内积是常数,这就是定义,定义成常数罢了.内积的公式还是很简单的,外积的就复杂得多.
㈨ numpy中怎么用一个数乘一个向量
numpy中直接用 * 即可表示数与向量的乘法,参考python 2.7的一个例子:
inport numpy as np
a = np.array([1,2,3,4]) # 向量
b = 5 # 数
print a*b
++++++++++++
[5,10,15,20]