E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
MATLAB入门学习
利用支持向量机SVM做二分类和多分类预测建模
程序语言为
matlab
。程序可以直接可以出分类预测图,混淆矩阵图,ROC曲线图。
oKEzspzn
·
2024-02-01 23:37
机器学习
人工智能
C++
入门学习
(二十二)选择结构-三目运算符
三目运算符,是一个程序开发的术语,优先级高于赋值、逗号运算符,低于其他运算符。适用于程序开发。格式:condition?expression1:expression2其中,condition是一个布尔表达式,expression1和expression2是两个表达式。如果condition的值为true,则三目运算符的结果为expression1的值;否则,结果为expression2的值。示例:
执沐
·
2024-02-01 22:10
c++
学习
算法
C++
入门学习
(二十)与或非
逻辑运算符的符号表示:与:&&或:||非:!a&&b如果a和b都为真,则结果为真,否则为假a||b如果a和b有一个为真,则结果为真,二者都为假时,结果为假!a如果a为假,则!a为真;如果a为真,则!a为假在C++中除了0都是真。#include#includeusingnamespacestd;intmain(){inta=10;intb=0;cout<<"a&&b:"<<(a&&b)<
执沐
·
2024-02-01 22:40
学习
C++
入门学习
(二十一)选择结构-if语句
1、单行if语句假设有个人去酒吧,但是酒吧不允许18岁以下的人进入,此时可以使用if语句判断.#include#includeusingnamespacestd;intmain(){inta;cout>a;if(a>=18){cout#includeusingnamespacestd;intmain(){inta;cout>a;if(a>=18){cout#includeusingnamespac
执沐
·
2024-02-01 22:40
C++入门
c++
学习
开发语言
matlab
模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)
注意我是用的是
matlab
2019b1,输入标定量,使用constant,用cal函数包裹2,输出显示量,在划线上标注,然后用display函数包裹,第一步和第二步完成以后,生产标定量a2l3,输入输出使用
鼾声鼾语
·
2024-02-01 22:17
smt3-simulink
开发语言
1024程序员节
python
numpy
linux
【OpenCV】在Linux上使用OpenCvSharp
前言OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和
MATLAB
接口,并支持Windows,Linux,Android和
椒颜皮皮虾྅
·
2024-02-01 21:07
C#
OpenCV
技术分享
opencv
linux
人工智能
matlab
数组拆分奇偶,在
MATLAB
中拆分数组
这是一个使用函数DIFF和FIND的简单矢量化解决方案:>>array=[00012456600000224566000440];%#Samplearray>>edgeArray=diff([0;(array(:)~=0);0]);>>indices=[find(edgeArray>0)-1find(edgeArray>indices=[find(edgeArray>0)find(edgeArra
Li Diana
·
2024-02-01 21:26
matlab数组拆分奇偶
Matlab
_Gui的简易操作
本文介绍一下
matlab
简单介绍一下如何写一个Gui界面(简易的抽奖机)。
matlab
写Gui界面有两种方法,一种是利用m文件,自己手敲代码。另外一种是利用guide控件来写。
y_wang09
·
2024-02-01 20:18
matlab
开发语言
图像处理
并网逆变器学习笔记7---下垂控制
MATLAB
仿真
参考文献:基于复合型虚拟阻抗与自适应下垂控制的并联逆变器功率均分策略---施家博一、下垂控制原理在逆变器并联系统容易发生输出功率分配不均的问题,不均匀分配会导致系统环流的增加,对逆变器以及负载造成严重影响,所以并联逆变器的稳定运行和精确的功率分配尤为重要。最常用方法是下垂控制,原理是通过对输出电压的频率与幅值进行控制,进而对有功和无功进行分配,该方法不需要逆变器之间互相通讯,系统扩容方便。研究方向
该用户已躺平@
·
2024-02-01 20:39
学习
python做积分_python曲线积分
scipy可以与其它标准科学计算程序库进行比较,比如gsl(gnuc或c++科学计算库),或者
matlab
工具箱。
weixin_39968760
·
2024-02-01 18:34
python做积分
基于
MATLAB
实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道
基于
MATLAB
实现的OFDM仿真调制解调,BPSK、QPSK、4QAM、16QAM、32QAM,加性高斯白噪声信道、TDL瑞利衰落信道相关链接OFDM中的帧(frame)、符号(symbol)、子载波
Better Bench
·
2024-02-01 18:15
信号处理
matlab
matlab
OFDM仿真
调制解调
BPSK
QPSK
4QAM
16QAM
2020-02-29
MATLAB
邮件设置时需要的Server的列表选择
序号SMTP列表1stmp.163.com2smtp.qq.com3smtp.189.cn4smtp.126.com5smtp.139.com6smtp.vip.126.com7smtp.vip.163.com8smtp.wo.cn9smtp.exmail.qq.com10smtp.gmail.com11smtp.yeah.net12smtp.sina.com13smtp.sina.cn14smt
_何_其_
·
2024-02-01 16:24
MATLAB
的入门知识
师从清风创建脚本文件后缀名为.m创建脚本文件的快捷键:ctrl+n保存文件快捷键:ctrl+s
matlab
文件名称必须以字母开头,并且仅包含字母、数字或下划线运行代码的方式:1、ctrl+a右键执行所选文件
乘~风
·
2024-02-01 15:53
matlab
算法
150基于
matlab
的凸轮轮廓的设计计算与绘图计算此结构的最优化参数
基于
matlab
的凸轮轮廓的设计计算与绘图计算此结构的最优化参数,根据其原理输出推程和回程的最大压力角、最小曲率半径等相关结果。程序已调通,可直接运行。
顶呱呱程序
·
2024-02-01 15:22
matlab工程应用
matlab
开发语言
结构的最优化参数
凸轮轮廓的设计
MATLAB
矩阵的操作(第一部分)
矩阵的基本知识矩阵概念矩阵(Matrix)在数学中是一个由复数或实数组成的矩形阵列,其元素按照行和列排列。矩阵的定义可以形式化地描述为:一个m行n列的矩阵是一个有序的数表,其中包含m*n个数,可以表示为:A=[a_{ij}]或A=(a_{ij}){m×n},这里的a{ij}是位于矩阵第i行第j列的元素,1≤i≤m,1≤j≤n。对于一个具体的m×n矩阵A,例如:1A=2|a11a12...a1n|3
乘~风
·
2024-02-01 15:52
matlab
Matlab
实现:图像边缘提取
1、边缘提取算法方法一:一阶微分算子Sobel算子Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,Sobel算子对边缘定位不是很准确,图像的边缘不止一个像素。Roberts算子Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是利用roberts算子提取边缘的结果是边缘比较粗,因此边缘的定位不是很准确。Prewitt算子Prewitt算子检测方法对灰度渐变和噪声较多的
w18478272407
·
2024-02-01 15:15
计算机视觉
人工智能
matlab
平面内最近点对问题
Pi,Pj).D(Pi,Pj)=square((xi-xj)(xi-xj)+(yi-yj)(yi-yj)));实验过程简述及时间复杂度分析实验算法编程使用C++,并且生成TXT文件,并且将该文件导入到
MATLAB
装进可乐瓶
·
2024-02-01 15:21
算法与数据分析
平面
机器学习
概率论
背包问题动态规划
matlab
,01背包问题动态规划详解
计算机算法分析考试:动态规划0-1背包问题,怎么算她说她没醉,却一直摇摇晃晃掉眼泪;你说你爱她,却从未想过给她一个家。要考试了,老师给划重点有一题:动态规划0-1背包问题,怎么算。怎么理问题描述:给定n种物品和一背包,物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品(物品不能你不经意间的嫣然一笑,惊醒了我的时光,点亮了我的世界,从此世界上再无黑暗。01背包问题-动态规划
Air君陈怡帆
·
2024-02-01 14:10
背包问题动态规划matlab
SCI一区 |
Matlab
实现mRMR-CNN-LSTM-Mutilhead-Attention最大相关最小冗余特征选择卷积长短期记忆神经网络融合多头注意力机制多特征分类预测
SCI一区|
Matlab
实现mRMR-CNN-LSTM-Mutilhead-Attention最大相关最小冗余特征选择卷积长短期记忆神经网络融合多头注意力机制多特征分类预测目录SCI一区|
Matlab
实现
机器学习之心
·
2024-02-01 14:01
分类预测
mRMR-CNN-LSTM
Mutilhead
Attention
最大相关最小冗余特征选择
卷积长短期记忆神经网络
融合多头注意力机制
多特征分类预测
故障诊断 | 一文解决,CNN-SVM卷积神经网络-支持向量机组合模型的故障诊断(
Matlab
)
效果一览文章概述故障诊断|一文解决,CNN-SVM卷积神经网络-支持向量机组合模型的故障诊断(
Matlab
)模型描述卷积神经网络(ConvolutionalNeuralNetwork,CNN)和支持向量机
机器学习之心
·
2024-02-01 14:01
故障诊断
CNN-SVM
卷积神经网络-支持向量机
故障诊断
组合模型
SCI一区 |
Matlab
实现mRMR-CNN-BiLSTM-Mutilhead-Attention最大相关最小冗余特征选择卷积双向长短期记忆神经网络融合多头注意力机制多特征分类预测
SCI一区|
Matlab
实现mRMR-CNN-BiLSTM-Mutilhead-Attention最大相关最小冗余特征选择卷积双向长短期记忆神经网络融合多头注意力机制多特征分类预测目录SCI一区|
Matlab
机器学习之心
·
2024-02-01 14:00
分类预测
mRMR-CNN-BiLSTM
Mutilhead
Attention
最大相关最小冗余特征降维
卷积双向长短期记忆神经网络
融合多头注意力机制
多特征分类预测
故障诊断 | 一文解决,RF随机森林的故障诊断(
Matlab
)
效果一览文章概述故障诊断|一文解决,RF随机森林的故障诊断(
Matlab
)模型描述随机森林(RandomForest)是一种集成学习(EnsembleLearning)方法,常用于解决分类和回归问题。
机器学习之心
·
2024-02-01 14:59
故障诊断
随机森林
故障诊断
用
matlab
制作证件照,美图秀秀证件照制作方法图文教程
现在各种考试、招聘都网上报名,需要的证件照也都是电子格式。虽说现在拍照方便了,但是应付不同的背景色要求,还得多拍几套。其实不如自己动手DIY,在“美图秀秀”中可以快速将生活照转成证件照,背景色也能随便换哦。快来跟绿茶小编一起学习制作证件照的方法吧!先来看看效果图(本教程使用的是美图秀秀3.0版):怎么样?只需一张正面免冠生活照,即可轻松改造成证件照,并且可以任意更换背景及缩放尺寸大小,适合任何场合
weixin_31861847
·
2024-02-01 14:24
用matlab制作证件照
从零开始学Linux之gcc命令
解释型语言:一边执行一边转换,需要哪些源代码就转换哪些源代码,不会生成可执行程序,相当于翻译一句,然后执行一句,比如Python、Java、PHP、Shell、Ruby、
MATLAB
等,使用的转换工具称为解释器
含泪进厂
·
2024-02-01 13:49
linux
数学建模-退火算法和遗传算法
退火算法和遗传算法一.退火算法退火算法
Matlab
程序如下:[W]=xlsread('D:100个目标经度纬度');>>x=[W(:,1)];>>y=[W(:,2)];>>w=[xy];;d1=[70,40
viperrrrrrr
·
2024-02-01 12:09
数学建模
算法
数学建模-多目标规划
例:求下列函数最大值
Matlab
程序:若分开求解,即分别求出第一个函数和第二个函数的最大值,我们试一下。
viperrrrrrr
·
2024-02-01 12:09
数学建模
算法
j建模
数学建模-灰色预测模型
灰色预测练习解答x(0)={183,189,207,234,220,256,270,285};X(1)={183,372,579,813,1033,1289,1559,1844};
Matlab
操作程序:
viperrrrrrr
·
2024-02-01 12:34
数学建模
算法
Git
入门学习
1--理解+常用操作
文章目录前言一、什么是版本控制系统(VCS)二、Git初步使用1.下载Git2.用户信息(自报家门)3.检查配置信息4.初始化仓库5.将远程仓库克隆到本地6.检查当前文件状态1.未被更改2.有未追踪的文件3.跟踪新文件4.暂存已修改的文件总结前言Git是什么?Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。一、什么是版本控制系统(VCS)版本控制是一种记录一个或若干文件
献_
·
2024-02-01 11:23
git
svn
electron
入门学习
一、Electron介绍Electron提供了丰富的本地(操作系统)的API,是一个基于Chromium和Node.js,使你能够使用HTML、CSS和JavaScript来创建桌面应用程序,兼容Mac、Windows和Linux。与其它各种的Node.js运行时不同的是Electron专注于桌面应用程序而不是Web服务器。目前,Electron已经创建了包括VScode和Atom在内的大量应用二
dingFY
·
2024-02-01 11:48
代做R、
Matlab
代做、调试
Matlab
程序、R语言程序代写
准备工作以及注意点:将文件”Nachname_Vorname.R”命名为YuXu并保存.打开R并以”UTF—8“为编码分配对象”11605933“并执行代码,请用“football_rand.csv”分析所有数据。(同样在SPAA和SAS中)注意SPSS处理:阅读文件“football_rand.cvs”并另存为’Xu_Yu.sav”.这些数据文件应该和一个’SPSS-Syntax-文件“Xu_Y
pimatuo
·
2024-02-01 10:17
2020-03-19
JSP的
入门学习
1.概念:javaserverpage:java服务端页面。
Key_L
·
2024-02-01 10:52
c++
matlab
opencv,C++读写
matlab
的mat文件 结合opencv Mat结构测试
最近opencv工程有需要用到
matlab
的mat文件,遂研究整理如下:工程配置:1.包含目录:
matlab
安装目录\extern\include\win642.库目录:
matlab
安装目录\extern
出馬仙老于頭
·
2024-02-01 10:13
c++
matlab
opencv
matlab
创建.mat文件,C++创建和调用
matlab
的MAT文件
C++创建和调用MATALB的MAT文件所用软硬件平台:VS2008sp1
matlab
2009b,32位PC,XP系统所用程序//创建一个.mat文件,并在里面存储一个double型变量,并赋值初值#include
weixin_39967096
·
2024-02-01 10:13
matlab
创建.mat文件
使用C++将数据输出.mat文件
使用C++将数据输出.mat文件1、工程描述本工程先使用
matlab
生成.mat文件,产生一组随机数据。之后将该.mat文件导入到使用C++编写的工程中去,取出数据之后经过处理生成一组新的数据。
墨色秋水
·
2024-02-01 10:42
C++
c++
matlab
使用C++操作
Matlab
中的mat文件
matlab
提供读写MAT文件的头文件和库函数,下面列出这些文件的路径,其中
matlab
root指
matlab
安装的路径,arch来识别平台架构头文件在
matlab
root\extern\include
heaptek
·
2024-02-01 10:39
Matlab
c++
matlab
开发语言
【三相潮流】基于仿射区间的,含分布式电源的配电网三相潮流算法
1.软件版本
matlab
2021a2.本算法理论知识当只采用区间运算,得到的结果则有可能过于保守,而采用仿射运算后,本文方法能够得到更窄的不确定区域,从而得到更窄的区间。
fpga和matlab
·
2024-02-01 09:53
MATLAB
板块20:新能源
其他
仿射区间
分布式电源
配电网三相潮流算法
基于仿射区间的分布式三相不对称配电网潮流算法
matlab
仿真
目录1.课题概述2.系统仿真结果3.核心程序与模型4.系统原理简介5.完整工程文件1.课题概述基于仿射区间的分布式三相不对称配电网潮流算法
matlab
仿真。
可编程芯片开发
·
2024-02-01 09:50
MATLAB仿真
#
电路/发电系统
matlab
仿射区间
分布式
三相不对称
配电网
潮流
微分方程应用(
MATLAB
)
【例题1】
matlab
求解微分方程的解析解closeallclearclct_final=100;x0=[0;0;1e-10];f=@(t,x)[-8/3*x(1)+x(2)*x(3);-10*x(2)
学习不止,掉发不停
·
2024-02-01 08:58
数学建模
matlab
数学建模
利用牛顿方法求解非线性方程(
MatLab
)
一、算法原理1.牛顿方法的算法原理牛顿方法(Newton’sMethod),也称为牛顿-拉弗森方法,是一种用于数值求解非线性方程的迭代方法。其基本思想是通过不断迭代来逼近方程的根,具体原理如下:输入:要求解的非线性方程f(x)=0f(x)=0f(x)=0,以及初始猜测值x0x_0x0。输出:近似根x∗x^*x∗。初始化x0x_0x0作为初始猜测值。进行迭代:计算f(xk)f(x_k)f(xk)和f
_宁清
·
2024-02-01 08:52
计算方法(数值分析)实验课
matlab
算法
人工智能
【
Matlab
仿真第一期】蚁群算法在机器人二维路径规划中的应用——栅格地图
移动机器人路径规划是机器人学的一个重要研究领域。它会要求机器人依据某个或某些优化原则(如最小能量消耗、最短行走距离、最短行走时间等),在其工作空间中找到一条从起始状态到目标状态的能避开障碍物的优化路径。机器人路径规划问题可以建模为一个有约束的优化问题,都要完成路径规划、定位和避障任务。应用蚁群算法求解机器人路径优化问题的主要步骤包含以下:(1)输入由0和1组成的矩阵表示机器人需要寻找最优路径的地图
不想当个技术宅
·
2024-02-01 08:48
算法
动态规划
自动驾驶
频谱细化-----CZT算法介绍及
MATLAB
实现
CZT变换采用FFT算法可以很快算出全部N点DFT值,即Z变换X(z)X\left(z\right)X(z)在Z平面单位圆上的全部等间隔取样值。实际中,也许不需要计算整个单位圆上Z变换的取样,如对于窄带信号,只需要对信号所在的一段频带进行分析,这时希望频谱的采样集中在这一频带内,以获得较高的分辨率,而频带以外的部分可不考虑,或者对其他围线上的Z变换取样感兴趣,例如语音信号处理中,需要知道Z变换的极
YHCANDOU
·
2024-02-01 08:47
频谱细化
matlab
算法
开发语言
【通信系统仿真系列】基于
Matlab
的汉明码(Hamming Code)纠错传输以及交织编码(Interleaved coding)仿真
基于
Matlab
的汉明码纠错传输以及交织编码仿真前言原理汉明码编码过程冗余位数量计算校验位位置计算计算校验相关位开始编码解码过程实验结果仿真代码可以修改的参数下载链接主函数汉明码编解码测试模块汉明码编码器汉明码解码器冗余位计算模块交织编码器交织解码器随机误码模块比较模块单极性码生成模块随机码转单极性码模块后语前言在上一篇文章
sys_rst_n
·
2024-02-01 08:11
仿真
算法
数字通信
调制与编码策略
编码学
编码器
【通信系统仿真系列】8位16位64位等任意数量用户CDMA直接序列扩频通信系统的
Matlab
仿真
8位16位64位等任意数量用户CDMA直接序列扩频通信系统的
Matlab
仿真前言模型缺点原理码元扩频扩频码叠加调制解调二项分布中心极限定理最优解调的实现解扩&码元判决实验结果仿真代码代码说明代码下载链接代码可修改的参数主函数双极性码生成模块
sys_rst_n
·
2024-02-01 08:10
仿真
算法
信号处理
matlab
其他
【通信系统仿真系列】基于ΔM增量调制的模拟信号通信系统仿真
基于ΔM增量调制的模拟信号通信系统仿真前言原理程序流程图音频文件读取ΔM调制随机误码ΔM解调平滑处理&归一化处理实验结果源代码可以修改的参数下载地址主函数增量调制模块增量解调模块误码模块后语前言本文基于
Matlab
sys_rst_n
·
2024-02-01 08:40
仿真
数字通信
信号处理
数字信号处理
使用
matlab
写二维数字波束形成程序并输出
使用
MATLAB
写二维数字波束形成程序的步骤是:1.使用离散傅立叶变换(DFT)计算输入信号的频谱;2.计算波束形成器的权重矩阵;3.使用矩阵乘法计算输出信号的频谱;4.使用逆离散傅立叶变换(IDFT)
不卡不卡
·
2024-02-01 07:53
matlab
开发语言
算法
机器学习
人工智能
雷达DoA估计的跨行业应用--麦克风阵列声源定位(
Matlab
仿真)
一、概述麦克风阵列:麦克风阵列是由一定数目的声学传感器(麦克风)按照一定规则排列的多麦克风系统,而基于麦克风阵列的声源定位是指用麦克风拾取声音信号,通过对麦克风阵列的各路输出信号进行分析和处理,得到一个或者多个声源的位置信息。麦克风阵列系统的声源定位技术研究意义在于:输入的信息只有两个方向难以确定声源的位置,人类的听觉系统主要取决于头和外耳气压差声波实现声源定位。假使没有这个压力差,只能定位在平面
奔袭的算法工程师
·
2024-02-01 07:52
雷达信号处理
语音识别
人工智能
机器学习
目标检测
自动驾驶
matlab
基于
MATLAB
的波束成型仿真
1.算法简介数字波束形成技术是天线波束形成原理与数字信号处理技术相结合的产物,其广泛应用于阵列信号处理领域.由于电磁工作环境的恶化和大量射频干扰的存在,在极低的信干噪比(SINR)条件下进行目标检测和信息提取十分困难.对于阵列系统,往往采用自适应数字波束形成(ADBF)技术,来抑制强干扰和方向性干扰对有用信号的影响.介绍了数字波束形成器的基本原理及其DSP的实现结构.2.部分核心代码clc;cle
fpga和matlab
·
2024-02-01 07:49
板块1:通信与信号处理
MATLAB
matlab
开发语言
波束成型
二维平面阵列波束赋形原理和
Matlab
仿真
1波束赋形基本原理实现波束赋形的最基本的方法是对各个天线阵元的信号进行适当延迟后相加,使目标方向的信号同相叠加得到增强,而其他方向均有不同程度的削弱,该方法通常用于模拟信号.数字信号可以通过对各个天线阵元的信号乘以复加权系数后相加,如图1。图1波束赋形基本原理2阵列信号模型将该天线阵放置于XYZ坐标中,阵面置于YOZ平面上,建立如图2所示的坐标系。阵面左下角天线位于坐标原点,将坐标原点阵元设为参考
奔袭的算法工程师
·
2024-02-01 07:47
雷达信号处理
人工智能
自动驾驶
目标检测
matlab
物联网
R语言基础学习-01 (此语言用途小众 用于数学 生物领域 基因分析)
其分析速度可媲美专用于矩阵计算的自由软件GNUOctave和商业软件
MATLAB
。R环境安装R语言的开发环境本身具备了图形开发环境,这与其他很多工程语言是不同的,
Jiang_Immortals
·
2024-02-01 07:39
r语言
开发语言
SCI一区 |
Matlab
实现TSOA-CNN-BiLSTM-Mutilhead-Attention凌日优化算法优化卷积双向长短期记忆神经网络融合多头注意力机制多特征分类预测
SCI一区|
Matlab
实现TSOA-CNN-BiLSTM-Mutilhead-Attention凌日优化算法优化卷积双向长短期记忆神经网络融合多头注意力机制多特征分类预测目录SCI一区|
Matlab
实现
机器学习之心
·
2024-02-01 06:27
分类预测
TSOA-CNN-BiLSTM
Mutilhead
Attention
凌日优化算法优化
卷积双向长短期记忆神经网络
融合多头注意力机制
多特征分类预测
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他