矩阵每一行重复_Fortran如何实现矩阵与向量的乘法运算

矩阵是二维数组,而向量是一维数组,内置函数matmul不能实现矩阵与向量的乘法运算。在这一点Fortran不如matlab灵活。

Fortran如何实现矩阵与向量的乘法运算,现有以下三种方法供参考。

一)将一维数组看作二维数组的退化形式,比如a(3)可以看作a(3,1)或者a(1,3),这样就可以用matmul函数计算了。

0c924258642fdb889d9ed0ac1227a3ba.png

二)用spread函数将一维数组扩展成二维数组,同样可用matmul函数计算。

来看过程。

e0cd039ce55a44a96452da2077382d4b.png

d72b1efb6b3f4015c5b52c8c8cf166f0.png

数组c的第一列就是需要的计算结果。

spread(B,2,2)就是按列扩展,成为二维数组

e7b79d65fe29b4557e47eeff222684af.png

三)利用dot_product函数。dot_product函数是向量点积运算函数,可将二维数组的每一行抽取出来,和一维数组作dot_product运算。

c337ee0330d5208ff3949d73ee26fb6d.png

程序员为什么会重复造轮子?现在的软件发展趋势,越来越多的基础服务能够“开箱即用”、“拿来用就好”,越来越多的新软件可以通过组合已有类库、服务以搭积木的方式完成。这是趋势,将来不懂开发语言的人都可以通过利用现有软件组件快速构建出能解决实际问题的软件产品。对程序员来讲,在一开始的学习成长阶段,造轮子则具有特殊的学习意义,学习别人怎么造,了解内部机理,自己造造看,这是非常好的锻炼。每次学习新技术都可以用这种方式来练习。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值