js的一部分API

数组的API :

添加

1.push()方法 : 将一个或多个元素添加到数组的末尾
参数 : 可以是一个, 可以是多个, 表示向数组里面添加元素 参数可以不填, 但是一般默认, 第一个参数必填
返回值 : 将指定的值添加到数组后的新数组长度
特点 : 直接改变原数组
2 .unshift() : 将一个或多个元素添加到数组的开头
参数 : 可以是一个, 可以是多个, 表示向数组里面添加元素 参数可以不填, 但是一般默认, 第一个参数必填
返回值 : 将指定的值添加到数组后的新数组长度
特点 : 直接改变原数组

删除

1.pop() : 删除数组中的最后一个元素
参数 : 没有参数, 因为指定的删除最后一个
返回值 : 返回删除的那个元素的值
特点 : 改变了原数组

2.shift() : 删除数组中的第一个元素
参数 : 没有参数, 因为指定的删除第一个
返回值 : 返回删除的那个元素的值
特点 : 改变了原数组

多个数组拼接成一个数组

1.concat() : 用于合并两个或多个数组
参数 : 可以是单个或多个元素, 也可以是一个或多个数组, 也可以混合使用
返回值 : 返回拼接后的数组
特点 : 不改变原数组
注意点 : 苏虽然传递的参数是数组, 但是操作的是数组里面的元素

2.slice(参数1, 参数2) 截取数组 从参数1开始截, 截到参数2, 但是不包括参数2
参数 : 两个参数 参数1 : 截取的起始下标 参数2 : 截取的结束下标(不包括在内)
返回值 : 返回的是截取到的元素组成的数组
特点 : 不改变原数组

注意 : 如果给了两个参数, 而且都是整数 常规用法
如果只给了一个参数, 那么这个参数就是开始截取得起始下标
如果参数是负数, (通俗的说, 就是倒着数) 截取下标为 arr.length + 负参数
如果不给参数 就是截取全部, 相当于赋值这个数组

  1. splice() 修改, 添加, 删除一个数组中的某各项
    参数 : 参数1 截取的起始下标
    参数2 截取的元素个数
    参数3到参数n : 表示替换或者添加的元素

返回值 : 截取的元素组成的新数组
特点 : 直接修改原数组

注意点 :
如果没有参数 返回值是空, 原数组不变
如果只有一个参数 这个参数表示截取的数组起始下标 它的用法和slice只有一个参数的效果是一样的, 返回值一样, 但是原数组发生了变化
如果只有两个参数 第一个参数是截取的数组起始下标 参数2 截取个数 这个是删除数组元素
如果有三个及以上参数 如果第二个参数值为0, 那么就表示添加新元素, 如果不为0, 表示删除对应个数的元素, 将新元素替换上去

数组的位置方法 indexOf(参数1, 参数2);
参数 : 参数1 : 是需要查找的数组元素
参数2 : 查找数组的起始下标(索引)
返回值 : 查找到了对应元素, 返回查找到的第一个元素所对应的下标
如果没有查找到 返回-1

语法解析 : 该方法是从头到尾检索数组元素, 看看是否是否能查找到对应元素, 如果查找到了, 返回找到的第一个元素对应的下标(是在没有定义第二个参数的情况下),
如果有第二个参数, 就从参数2对应的位置开始检索元素, 返回找到的第一个元素对应的下标
如果没有找到 返回-1

  1. 把数组转换成字符串
    join() 该方法是使用指定的符号把各个数组元素连接成字符串
    参数 : 指定的符号, 用来连接数组各元素, 默认是逗号
    返回值 : 拼接后的字符串,
    特点 : 不改变原数组

toString() 作用和不传参数时的join一样 默认使用逗号隔开

改变原数组的方法 :
push()
pop()
unshift()
shift()
splice()
reverse()
sort()

不改变原数组的方法 :
concat() :
slice() :
indexOf() :
join()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值