本文实例讲述了射流研究…实现简单的二维矩阵乘积运算方法。分享给大家供大家参考,具体如下:
安慰控制台截图如下:
(上图为输出结果直接上代码了(一矩阵可以乘以B矩阵的前提是A矩阵的列数等于B矩阵的行数)
!DOCTYPE html html标题演示/标题/标题正文/正文脚本类型='text/javascript '函数日志(消息){控制台。日志(msg);} /** * 可视化的打印出矩阵的数据*/函数printMatrixData(数据){ console.log(数据);if(!数据){ return } var number SiZe=5;for(var i=0,len=data.length伊琳;I){ var row=data[I];var Rowlog='(';for(var j=0,jLen=row . lengthjlenj){ Rowlog=row[j];//补齐空格rowLog=缩进(numberSize -(第[j]行)' ' .长度);} Rowlog=')';控制台。日志(Rowlog);} } /** * 拼接指定长度的空格*/函数缩进(长度){ var empty=for(var I=0;ileng tti){ empty=' ';}返回空的;} /** * 矩阵原型*/函数矩阵(数据){ //这里必须传一个二维数组,最好严格检验一下如果(数据类型!==' object ' | |数据类型。length==' undefined ' | |!数据){抛出新错误('数据的类型是错误');} this.data=datathis。cols=数据。长度;} var M={ findByLocation:函数(data,xIndex,yIndex){ if(data data[xIndex]){ return data[xIndex][yIndex];} }, //矩阵乘积multiply:函数(m,n) { if(!矩阵的m个实例!矩阵的n个实例){抛出新错误('数据类型为错误');} var mData=m . datavar nData=n . dataif(mData。长度==0 | | ndata。length==0){ return 0;} if(mData[0].长度!=ndata . length){ 0抛出新的错误('两个矩阵数据不允许点');} var结果=[];对于(var i=0,len=mData.length伊琳;I){ var MRow=MData[I];结果[I]=[];对于(var j=0,jLen=mrow . lengthjlenj){ var resultRowCol=0;//如果n矩阵没有足够的列数相乘,转入m矩阵下一行if(这种类型。findbylocation(nData,0,j)===' undefined '){ break;} for(var k=0,Klen=JlenKlenk){ resultRowcol=MRow[k]* this。findbylocation(nData,k,j);}结果[I][j]=resultRowCol;} }返回结果;} };var m=新矩阵([[2,-1],[-2,1],[-1,2]]);var n=新矩阵([[4,-3],[3,5]]);定义变量结果=M。乘(m,n);printMatrixData(结果);var m2=新矩阵([[2,3,1],[5,2,4],[-3,2,0]]);var n2=新矩阵([[11],[5],[8]]);定义变量结果2=M乘(m2,N2);打印矩阵数据(结果2);/script/html更多关于Java脚本语言运算相关内容感兴趣的读者可查看本站专题: 《JavaScript数学运算用法总结》
希望本文所述对大家Java脚本语言程序设计有所帮助。