simulink索引超出矩阵维度_TypeScript 实战算法系列(九):实现向量与矩阵

f22cfae67e51184f8ce406453dcefd39.png

本文由图雀社区认证作者 神奇的程序员 写作而成,图雀社区将连载其TypeScript 实战算法系列,点击阅读原文查看作者的掘金链接,感谢作者的优质输出,让我们的技术世界变得更加美好?

前言

作为一个对线性代数一无所知的开发者,想快速对向量和矩阵进行一个了解和认识,那么本文就正好适合你。

本文将站在开发者的角度的讲解向量和矩阵,并用TypeScript将其实现,欢迎各位感兴趣的开发者阅读本文。

向量

向量是线性代数研究的基本元素,将一组数放在一起其基本的表示方法就是向量,例如:一个数: 100,一组数:(25,78,101)。其中一组数就可以称为向量,示例中的这组数是一个三维向量。

下述公式,描述了一个向量。

那么,一组数有什么用?

我们通过一个例子来说明,如下表所示:

序号 语文 数学 英语
0 70 80 90

上述表格中,(0,70,80,90) 这组数分别描述了序号、语文、数学、英语,如果将这组数中数字的顺序调换顺序,那么其所表达的意思也就完全不同了,每个数字都代表着空间中的一个点,是一组有序的数字,因此他可以用来描述一个有序的东西。

标量:向量中的数字就称为标量。

向量的更多概念

行向量与列向量
  • 行向量:即横着排列的标量,如下所示
  • 列向量:即竖着排列的标量,如下所示
维度

向量中标量的个数,就是这个向量的维度。

例如,向量(3,4)其维度就是2

实现向量

接下来我们根据上面所述,先来看看我们都需要为向量实现哪些方法。

  • 获取向量的维度
  • 向量的长度
  • 获取向量的特定元素
  • 输出向量

接下来,我们来一一实现这些方法。

  • 创建一个TS文件,命名为:Vector.ts,用于实现向量的所有方法
  • 声明向量类,在构造函数中声明我们需要传的参数,向量就是一组数,因此我们用数组来表示向量
export class Vector {
    
    constructor(private list: number[] = []) {}
}
  • 实现获取向量维度函数:getDimension
    getDimension(): number {
    
        return this.list.length;
    }
  • 实现向量的长度函数:length
    len = this.getDimension();
  • 实现获取向量的特定元素:getItem
    /**
     * 获取向量的特定元素
     * @param index 目标元素索引
     */
    getItem(index: number): number {
        return this.list[index];
    }
  • 实现输出向量函数
    toStr(): string {
    
        let str = ``;
        for (let i = 0; i this.list.length; i++) {
            if (i !== this.list.length - 1) {
                str += `${ this.list[i]},`;
            } else {
                str += this.list[i];
            }
        }
        return `Vector(${str})`;
    }

向量的基本运算

向量有两种基本运算:即向量加法和向量数量乘法

向量的加法

如上所示,描述了两个向量相加,它的计算规则如下:

  • 相加的两个向量其维度必须相等
  • 把向量中的分量(即向量中的每个数)分别想加,最终构成的向量就是其相加后的结果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值