恭喜,你发布的帖子
发布于 2020-12-02 16:51:16
8楼
矩阵乘法对最短路径计算/滤波/图形变换等应用有关而且与间接寻址有关因此贴在后面。
C==AXB(矩阵三==矩阵一乘矩阵二)
A/B/C三个矩阵存成一维数组的元素放置规则(很重要):
1:A矩阵的元素按照先行后列"之"子型排成一维数组存放在A的浮点型地址里;
2:B矩阵的元素按照先列后行"之"子型排成一维数组存放在B的浮点型地址里;
3:C矩阵的元素按照先行后列"之"子型排成一维数组存放在C的浮点型地址里;
4:工程数学的行列式任意先行后列/先列后行的运算等价即行和列具有同等地位;
5:矩阵的序号变量可有可无:因为只要知道矩阵的行数/列数,以及矩阵首地址
及排列方式(先行后列或者先列后行的"之"子型排列)就可以运算知道每个元素
的行数列数运算规则如下
6:
1:对于行优先之字形排列的矩阵:行参数==元素的序号变量对行参数取整后加一;列参数==该元素的序号变量对行参数取余后加一;
2:对于列优先之字形排列的矩阵:列参数==元素的序号变量对列参数取整后加一;行参数==该元素的序号变量对列参数取余后加一;
.PDF改.Smart打开。
最终版在网络13修改添加了一个单整数转双整数的指令.
程序用以前最原始固件的奖品CR60测试OK,未考虑空矩阵以及参数超范围等容错机制,仅供参考。
//////////////////////////////////////////////////////////////////////////////////////////////////////
以下函数实现了2个功能:行排列变列排列;转置
1:L-R:矩阵的一维数组由行优先之字形排列转成列优先之字形排列,且元素的序号绑定不改变。
因此上个例程的B矩阵如果原先是行优先之字形排列可以通过这个函数转换成列优先之字形排列的一维数组
且不改变任何元素的序号。
2:T:矩阵的转置转置序号对A源列数取整后取余后可以得到转置后矩阵的行列数,转置后可默认新矩阵是行优先即可。
.PDF改成.Smart打开
////////////////////////////////////////////////////////////////////////////////////////////////////////////
.PDF改成.Smart打开
Matrix_Mull实现行优先排列矩阵A乘行优先排列矩阵B。清零C循环可省去放进行循环,列循环里清零也行。
以上仅参考矩阵计算资料,未参考CSDN或其它任何资料,错漏难免,仅供参考。矩阵的加法,减法,数乘,左除,右除,微分,积分,差分,卷积,分块,加密,摄动,DFT/FFT,有限元,面元法,特征值,残差分解;以及方阵的逆,伴随等等可按类似思路参考名著矩阵计算或其它通用数学书籍来写。
矩阵运算是GPU以及AI-TPU的稍强项,要耗费大量时间和空间。简单的可能还行,复杂的话想想还是放了200Smart吧。
完!
请填写推广理由:
分享
只看
楼主