一个矩阵代数分析的辅助程序

人们在处理机械臂关节矩阵时,需要大量的手工相乘代数运算。 由于是推导公式,而不是进行数值计算,计算机不能直接参与协助。
在推导过程中,有大量的多项式代数相乘,手工抄写极易出错。

笔者于是想通过python程序来协助完成部分任务。
编写了如下程序,用以实现两个代数4*4矩阵的乘法。

目前程序的输出还比较粗糙,如果哪位程序大佬能帮助修正,非常感谢。
本程序有参考numpy中文文档群里以及网络上 幽兰@幽香、defias和leo的程序语法,在此对他们表示感谢。

程序调试过程中,需要一个exel文件: test1.xlsx 大家可以加我微信索取,以便进行测试。微信号是 a18705416479


# Authored by Tom_Gong  email: gongal@163.com

################################################

import xlrd
import xlwt
m=0
n=5
a=''
b=''
c='0'

workbook = xlwt.Workbook() #注意Workbook的开头W要大写
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)

borders = xlwt.Borders()  # Create borders
 
borders.left = xlwt.Borders.MEDIUM  # 添加边框-虚线边框
borders.right = xlwt.Borders.MEDIUM  # 添加边框-虚线边框
borders.top = xlwt.Borders.MEDIUM  # 添加边框-虚线边框
borders.bottom = xlwt.Borders.MEDIUM 
borders.left_colour = 0x90 # 边框上色
borders.right_colour = 0x90
borders.top_colour = 0x90
borders.bottom_colour = 0x90
 
style = xlwt.XFStyle()  # Create style
style.borders = borders


data = xlrd.open_workbook('test1.xlsx')
table = data.sheets()[0] 
for i in range (0,4):
    for j in range(0,4):
       #for k in range(0,4):
           for l in range(0,4):
            a=str(table.cell_value(j,l))
            b=str(table.cell_value(5+l,i))
            if ( a!='0'and b!='0'):
     
              c=c+'+'+'('+a+')'+'*'+'('+b+')'
              
              a=''
              b=''
           c=c.replace('0+','')
           c=c.replace('(1)*','')
           c=c.replace('*(1)','')

           sheet1.write(j+1,i+1,c,style)

           

   

           c='0'
          




#保存该excel文件,有同名文件时直接覆盖
workbook.save('test2.xls')
print( '创建excel文件完成!')


程序中用到的附带文件test1.xlsx
https://download.csdn.net/download/tom13a/11441923
这个文件也可以自己做一个,新建一个文件名问test1.xlsx的exel文件,sheet1里面左上角放上两个4乘以4表,中间隔一行,一共展九行四列。每个表里面盛放要相乘的矩阵即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值