javascript二维数组转置_JavaScript实现数学公式

aaffa7ff29ec802a84b0bb8837e33945.png

数学符号

sigma:累加计算

PI:累乘计算

矩阵(Matrix)下标为m行n列 意为矩阵
为 行
列的矩阵

矩阵元素
,其下标为 第
行, 第

1.累加计算

总计符号sigma意为i初始值为1,i累加至n,对i进行求和

function sigma(n){
	let total=0; //初始的总和为零
	for(let i=1;i<=n;i++){ //循环n次,每次i++即自动增加1
		total+=i;  //对i进行加法计算
	}
	return total;  //返回总和
}

从上面的代码中,公式和代码中的变量都是一致的,一般Σ或者Π都会写成循环,while或者for循环。

同样的对于符号Π除了把代码中的total+=i换成total*=i就可以了

假设
属于自然数,自然数从零开始,但是我们选择的初始值为1,零不纳入乘法计算

function Total_Product(n){
	let total=1; //初始值为1 因为当总和为零时,零乘以零任然等于零
	for(let i=1;i<=n;i++){ //从i开始一直循环到n,每次增加1
		total*=i; //每次循环进行一次乘法运算
	}
	return total;  //返回总和
}

2.矩阵(Matrix)

为一个
列的一个矩阵

我们写一个方法进行初始化矩阵,代码:

class Matrix{
constructor(row,col){
	this.row=row;  //行
	this.col=col;  //列
	this.data=[];
	let Matrix = new Array(row);  //创建row个元素的空数组
	for(let i=0;i<col;i++){ //对第一层数组遍历
		Matrix[i] = new Array(col);  //每一行创建col列的空数组
	}
	this.data=Matrix; //将矩阵保存到this.data上
	return Matrix;
}
}

我们的函数有两个参数,分别是行(row)和列(col),根据这两个参数我们的函数会生成一个row行col列的空的矩阵。在计算机中,我们可以把矩阵看作是二维的数组。

2.1矩阵乘法

矩阵与矩阵的乘法计算会有先决条件,假设有两个矩阵

和矩阵
,它们分别是
,矩阵A和矩阵B的列和行必须相等,否则为不相容的两个矩阵,无法进行运算。矩阵进行相乘运算后会变成另外一个矩阵

矩阵的乘法定义为

的矩阵,
的矩阵。
的矩阵记作
,是一个
的矩阵,其第(
)元素等于
的第
行与
的第
列对应元素的乘积之和。换言之, 如果
,则

矩阵的乘法运算公式如上

function Matrix_Product(A,B){
	let tempMatrix = new Matrix(A.row,B.col);
	if(A.col==B.row){
		for(let i=0;i<A.row;i++){
			for(let j=0;j<B.col;j++){
                               tempMatrix.data[i][j]=0;
                               for(let n =0;n<A.col;n++){
					tempMatrix.data[i][j]+=A.data[i][n]*B.data[n][j];
				}
			}
		}
		return tempMatrix;
	}
}

2.2矩阵的转置

矩阵的的转置可以形容为若有一个矩阵

在经过转置运算之后,它的行列数互换变成
的一个新矩阵
矩阵。
的转置(transpose),记作
,是通过交换
的行和列得到的
矩阵。换言之,如果
,则
,

由以上描述我们可以进行撰写代码,由于i,j都是自增量(两个自增量),所以要写两层循环。(循环层数依照自变量的个数而定)

function Matrix_transpose(matrix){
	let tempMatrix = new Matrix(matrix.col,matrix.row);
	for(let i=0;i<matrix.row;i++){
		for(let j=0;j<matrix.col;j++){
			tempMatrix.data[j][i]=matrix.data[i][j];
		}
	}
        return tempMatrix;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值