Unity点乘和叉乘的基本使用

Unity游戏开发中的向量运算-点乘和叉乘 阅读详情

//求角度 及前后左右方位  
public void checkTargetDirForMe(Transform target)  
{  
    //xuqiTest:  target.position = new Vector3(3, 0, 5);  
    Vector3 dir = target.position - transform.position; //位置差,方向  
    //方式1   点乘  
    //点积的计算方式为: a·b =| a |·| b | cos < a,b > 其中 | a | 和 | b | 表示向量的模 。  
    float dot = Vector3.Dot(transform.forward, dir.normalized);//点乘判断前后:dot >0在前,<0在后
    float dot1 = Vector3.Dot(transform.right, dir.normalized);//点乘判断左右: dot1>0在右,<0在左
    float angle = Mathf.Acos(Vector3.Dot(transform.forward.normalized, dir.normalized)) * Mathf.Rad2Deg;//通过点乘求出夹角  
  
    //方式2   叉乘  
    //叉乘满足右手准则  公式:模长|c|=|a||b|sin<a,b>    
    Vector3 cross = Vector3.Cross(transform.forward, dir.normalized);//叉乘判断左右:cross.y>0在左,<0在右   
    Vector3 cross1 = Vector3.Cross(transform.right, dir.normalized); //叉乘判断前后:cross.y>0在前,<0在后   
    angle = Mathf.Asin(Vector3.Distance(Vector3.zero, Vector3.Cross(transform.forward.normalized, dir.normalized))) * Mathf.Rad2Deg;  
      
}  

项目中常会用到物体移动,追踪,判断两物体移动方向是否相同,两物体移动方向夹角,以及物体 A 朝 物体 B 顺时针方向还是逆时针方向移动。物体 A 在 物体 B 的前后左右方向。 
下面通过点乘(Dot)、叉乘(Cross), 得到上面的需求结果。

using UnityEngine;
using System.Collections;
 
public class VectorDotCross : MonoBehaviour {
 
    // 关于点积
    private void Dot()
    {
        /*
        点积 
        点积的计算方式为:  a·b=|a|·|b|cos<a,b>  其中|a|和|b|表示向量的模,
        <a,b>表示两个向量的夹角。 通过点积判断当两个向量的方向向是否相同
        (大致相同即两个向量的夹角在 90 度范围内)
        两个向量的 点积 大于 0 则两个向量夹角小于 90 度, 否则 两个向量的
        夹角大于 90 度,
        */
        // 定义两个向量 a、b
        Vector3 a = new Vector3(1, 1, 1);
        Vector3 b = new Vector3(1, 5, 1);
 
        // 计算 a、b 点积结果
        float result = Vector3.Dot(a, b);
 
        // 通过向量直接获取两个向量的夹角(默认为 角度), 此方法范围 [0 - 180]
        float angle = Vector3.Angle(a, b);
 
        // 下面获取夹角的方法,只是展示用法,太麻烦不必使用
        // 通过向量点积获取向量夹角,需要注意,必须将向量转换为单位向量才行
        // 计算 a、b 单位向量的点积
        result = Vector3.Dot(a.normalized, b.normalized);
        // 通过反余弦函数获取 向量 a、b 夹角(默认为 弧度)
        float radians = Mathf.Acos(result);
        // 将弧度转换为 角度
        angle = radians * Mathf.Rad2Deg;
    }
 
 
    // 关于叉乘
    private void Cross()
    {
        /*
          叉积 
          叉积的定义: c = a x b  其中a,b,c均为向量。两个向量的叉积是向量, 向量的模为  |c|=|a||b|sin<a,b>
          且 向量 c 垂直于 a、b, c 垂直于 a、b 组成的平面, a x b = - b x a;
        */
        // 定义两个向量 a、b
        Vector3 a = new Vector3(1, 1, 1);
        Vector3 b = new Vector3(1, 5, 1);
 
        //计算向量 a、b 的叉积,结果为 向量 
        Vector3 c = Vector3.Cross(a, b);
 
        // 下面获取夹角的方法,只是展示用法,太麻烦不必使用
        // 通过反正弦函数获取向量 a、b 夹角(默认为弧度)
        float radians = Mathf.Asin(Vector3.Distance(Vector3.zero, Vector3.Cross(a.normalized, b.normalized)));
        float angle = radians * Mathf.Rad2Deg;
 
        // 判断顺时针、逆时针方向,是在 2D 平面内的,所以需指定一个平面,下面以X、Z轴组成的平面为例(忽略 Y 轴)
        // 以 Y 轴为纵轴
        // 在 X、Z 轴平面上,判断 b 在 a 的顺时针或者逆时针方向
        if (c.y > 0)
        {
            // b 在 a 的顺时针方向
        }
        else if (c.y == 0)
        {
            // b 和 a 方向相同(平行)
        }
        else
        {
            // b 在 a 的逆时针方向
        }
    }
 
 
    // 获取两个向量的夹角  Vector3.Angle 只能返回 [0, 180] 的值
    // 如真实情况下向量 a 到 b 的夹角(80 度)则 b 到 a 的夹角是(-80)
    // 通过 Dot、Cross 结合获取到 a 到 b, b 到 a 的不同夹角
    private void GetAngle(Vector3 a, Vector3 b)
    {
        Vector3 c = Vector3.Cross(a, b);
        float angle = Vector3.Angle(a, b);
 
        // b 到 a 的夹角
        float sign = Mathf.Sign(Vector3.Dot(c.normalized, Vector3.Cross(a.normalized, b.normalized)));
        float signed_angle = angle * sign;
 
        Debug.Log("b -> a :" + signed_angle);
 
        // a 到 b 的夹角
        sign = Mathf.Sign(Vector3.Dot(c.normalized, Vector3.Cross(b.normalized, a.normalized)));
        signed_angle = angle * sign;
 
        Debug.Log("a -> b :" + signed_angle);
    }
 
}

Unity之 Vector3 的详细介绍以及方法的介绍 你真的懂得unity 中的Vector3 的方法吗?Please fellow me 阅读详情

相关推荐

【Unity 24】Unity中的向量点乘和叉乘的应用

PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更。 笔记内容均为 自己理解,不保证每个都对 点乘求角度,叉乘求方向 比如敌人再附近,点乘可以求出玩家面朝方向和敌人方向的夹角,叉乘可以得出左转还是右转更好的转向敌人 Part 1 点乘: 数学上的 点乘为 a * b = |a| * |b| * cos(Θ) Unity中的点乘也是如此 点乘结果为 ...

不积跬步,无以至千里 5290

Unity3D之Vector3.Dot和Vector3.Cross的使用

在Unity3D中,Vector3.Dot表示求两个向量的点积;Vector3.Cross表示求两个向量的叉积。   点积计算的结果为数值,而叉积计算的结果为向量。两者要注意区别开来。   在几何数学中:   1.点积   点积的计算方式为: a·b=|a|·|b|cos 其中|a|和|b|表示向量的模,表示两个向量的夹角。另外在点积中,和 夹角是不分顺序的。   所以通过点

qq_39816832的博客 5054

【Unity】Unity 几何知识、弧度、三角函数、向量运算、点乘、叉乘

向量是一个数字列表,表示各个维度上的有向位移。它是一个有大小有方向的物理量。大小就是方向的模长,方向描述了空间中向量的指向。向量可以用来表示物体的位置和方向。

一个普普通通的游戏开发者 5912

【学习笔记】unity脚本学习(三)(向量 Vector3)

两个投影和数学概念一致。

3797

Unity 点乘及叉乘的几何意义及运用

1:点乘:定义:a·b=|a|·|b|cos<a,b>【注:粗体小写字母表示向量,<a,b>表示向量a,b的夹角,取值范围为[0,180]】 注:看到公式,我们即可知道点乘过后得到的是一个标量,而不是一个向量。 而且可以通过这个去计算两个点之间的夹角及方向; Unity项目中的应用 1:通过点乘,我们可以计算出两个点之前的前后所属位置,当a·b&...

qq_39091751的博客 3314

点乘和叉乘在Unity中的应用

点乘(点积)和叉乘(叉积)是向量运算的核心概念。点乘计算两个向量的标量积,用于判断方向相似性和夹角计算,公式为a·b=|a||b|cosθ。叉乘则生成垂直于原向量的新向量,用于求法线、旋转轴等,公式为a×b=|a||b|sinθ。在Unity中,Vector3.Dot和Vector3.Cross方法分别实现这两种运算,广泛应用于角色控制、物理模拟、光照计算等领域。点乘适用于方向判断,叉乘适用于生成法向量和扭矩计算。使用时需注意向量归一化以确保准确性。

Evan8的博客 608

Unity 点乘和叉乘的原理和使用

Unity当中经常会用到向量的运算来计算目标的方位,朝向,角度等相关数据,下面咱们来通过实例学习下Unity当中最常用的点乘和叉乘的使用。 点乘(又称"点积","数量积”,"内积")(Dot Product, 用*) 定义:a·b=|a|·|b|cos 【注:粗体小写字母表示向量,表示向量a,b的夹角,取值范围为[0,180]】 几何意义:是一条边向另一条边的投影乘以另一条边的长度.

TxNet 4万+

【unity基础】点乘和叉乘

1、点乘 定义:a*b=|a||b|cos<a,b> 几何意义:一条边向另一条边的投影乘以另一条边的长度 运算:x1*x2+y1*y2+z1*z2.结果是一个标量不是一个变量。 应用: 1、根据点乘计算两个向量的夹角 2、根据点乘的结果得到夹角的大小范围,判断某一个角色是在镜头前还是镜头后。如果点乘结果>0 表示夹角是0-90度,是在镜头前,否则在镜头后。 3、根据点乘的结果判断两个向量的长度大小关系 2、叉乘 定义:axb=c,三个都是向量 几何意义:结果是一个.

huang11055的专栏 1328

快速掌握Unity内的点乘和叉乘

【10分钟掌握游戏开发中的点乘与叉乘】 点乘和叉乘是游戏开发中的核心数学工具。点乘(Dot Product)衡量两个向量的方向相似度,输出标量值:当结果>0时向量同向,=0时垂直,<0时反向。在Unity中常用于判断物体相对位置(前后关系)和计算光照强度。叉乘(Cross Product)则生成垂直于两个输入向量的新向量,遵循左手定则,输出向量值。主要用途包括:计算平面法线、确定旋转轴、判断物体左右位置。关键区别:点乘关注角度关系,叉乘生成垂直方向。通过Vector3.Dot/Cross可快速实

zd33651的博客 1795

【unity进阶篇】向量的点乘Vector3.Dot与叉乘Vector3.Cross、判断物体方位和范围

【unity进阶篇】向量的点乘Vector3.Dot与叉乘Vector3.Cross

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1036

从原理图到PCB:Cadence Allegro 17.4网表同步全流程详解(含第三方网表配置)

本文详细解析了Cadence Allegro 17.4中从Orcad原理图到PCB布局的网表同步全流程。核心内容包括标准的第一方网表同步步骤,以及针对第三方网表导入时关键的封装库路径配置方法,并提供了常见同步错误的排查思路,帮助工程师高效、准确地完成设计数据传递,确保PCB设计顺利开局。

salt9的博客 653

Unity中的叉乘和点乘

两个向量的点乘,就是我们说的数量级 a·b=|a|·|b|cosθ 结果是一个标量,如果==0,则两个向量夹角等于90度,垂直关系 小于0,则两个向量夹角大于90度 大于0,则两个向量夹角小于90度 如果cosθ等于-1,则两个向量相反,等于1则两个向量同向 如果两个向量a,b均 为单位 向量 ,那么a.b等于向量b在向量a方向上的投影的长度 两个向量的叉乘,得到的是...

Cco丶 2838

Bentley ORD(openroads designer) 二次开发(BIM)第七节 在ORD SDK中调用MicroStation SDK

从课程刚开始的时候我们就通过学习,了解了ORD的开发是基于MicroStation的,ORD SDK的接口发布的时候也对MicroStation SDK也做了一次发布。这一章将以我们对ORD SDK知识的了解为基础,使用ORD SDK的接口读取道路几何信息、计算桩号,然后再使用MicroStation SDK 读取地形数据和计算投影点的位置,并创建一组方柱形状的Soild。计算方柱底部坐标要经过两大步骤,通过路线的桩号及偏移距离去定位方柱的平面位置,通过方柱的平面位置计算数字地面模型上的投影点的坐标。

chen286990651的博客 879

Unity向量的点乘和叉乘的使用

Unity中点乘和叉乘点乘(API: Vector3.Dot())点乘的计算公式点乘的几何意义用途之一:判断一个物体当前方位利用点乘求出角度叉乘(API: Vector3.Cross())叉乘计算公式叉乘的几何意义判断物体是在左侧还是右侧 点乘(API: Vector3.Dot()) 点乘的计算公式 向量A(X1,Y1,Z1) 向量B(X2,Y2,Z2) A•B=X1*X2+Y1*Y2+Z1*Z2 向量•向量=标量(一个数值没有方向) 点乘的几何意义 点乘可以得到一个向量在自己向量上`投影的长度 如下图所示

加加油! 4356

FPGA实现电机转速PID控制

通过纯RTL实现电机转速PID控制,包括电机编码器值读取,电机速度、正反转控制,PID算法,卡尔曼滤波,最终实现对电机速度进行控制,使其能够渐近设定的编码器目标值。

STATEABC的博客 7461

智能车图像处理24-进阶篇16--三叉路口的判断

这篇文章主要讲述图像处理中如何判断三叉路口并进行补线操作。

taiyuezyh的博客 1万+

【Unity中的数学】—— 向量(点乘 叉乘)

向量 点乘 叉乘

惊鸿醉的博客 2373

【MATLAB例程】基于TDOA定位(两步最小二乘)的三维轨迹定位和UKF滤波,TDOA的锚点可以自适应,附完整代码

该代码实现了一种**融合TDOA(到达时间差)定位与无迹卡尔曼滤波(UKF)**的动态目标轨迹跟踪方案,适用于三维空间中的移动目标定位与滤波。TDOA定位:通过两步加权最小二乘法(TS-WLS)解算目标位置。UKF滤波:对定位结果进行非线性滤波,抑制噪声并提升轨迹平滑性。多维度误差分析:对比滤波前后误差,评估算法性能。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 673

Unity游戏开发——向量运算(点乘和叉乘)

Unity游戏开发——向量运算(点乘和叉乘) 0.前言 在游戏开发中,确定目标得方向,朝向,夹角等相关数据需要用到向量的计算,其中最常用到的就时点乘和叉乘。 因为我们主要研究的是游戏开发中的3D世界向量,所以小面的介绍会以几何定义为主,不研究其代数定义。 1.点乘 定义 点乘又称点积、数量积、标量积。 从几何角度看,点乘是两个向量的长度和它们的夹角余玄值的积。 从名称和定义来看,点乘的结果是标量。点乘的名称也源自与点乘的运算符号。 通过上面的公式,我们也可以得到如下公式。 也就是说如果给定了两个向量,

暗夜 6376

AIGC实战——多模态模型DALL.E 2

DALL.E 2 是 OpenAI 提出的一个大规模文本生成图像模型,可以根据文本提示生成各种风格的逼真图像。它通过将预训练模型 CLIP 与 GLIDE 中的扩散模型架构相结合完成任务。它还具有其他应用,例如通过文本提示编辑图像和提供给定图像的变体。虽然它也有一些局限性,例如不一致的文本渲染和属性绑定,但 DALL.E 2 是仍然一个非常强大的AI模型,推动了生成模型的发展。

盼小辉丶的博客 1万+

基于语义分割的实时建图:HDMap动态更新

基于语义分割的实时建图:HDMap动态更新​ ,人工智能,计算机视觉,大模型,AI,本文围绕基于语义分割的实时建图技术在HDMap动态更新中的应用展开,介绍了语义分割基础、HDMap概述、相关实时建图技术、动态更新关键技术、系统性能评估指标、实际应用案例、面临的挑战与解决方案及未来发展趋势。阐述了该技术如何利用传感器数据和语义分割算法,解决传统HDMap构建与更新的弊端,分析了其在精度、实时性、鲁棒性等方面的表现,以及在自动驾驶和智能交通中的应用,还探讨了现存问题及未来优化方向。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 22万+

两个向量的点乘和叉乘怎么算_Unity游戏开发——向量运算(点乘和叉乘)

0.前言在游戏开发中,确定目标的方位,朝向,夹角等相关数据需要用到向量间的计算,其中最常用到的就是点乘和叉乘。说实话,因为向量的运算在平时开发中不是经常使用,我也总弄混这两种运算的含义,所以这次好好区分一下,也给有同样困扰的朋友一点小小的帮助。因为我们主要研究的是游戏开发中的3D世界向量,所以下面的介绍会以几何定义为主,不研究其代数定义。1.点乘定义又称点积、数量积、标量积。从几何角度看,点乘是两...

weixin_39705018的博客 1540

RK3588部署YOLO模型 包含模型量化+npu轻量化+ubuntu+RGA图像加速和多线程模型加速 包源码

本专栏为深度学习部署全栈学习体系,包含68篇由浅入深的教程,专为零基础学习者设计。内容涵盖TensorRT与RK3588平台部署技术,包含Jetson系列和RK系列硬件部署实战,采用"理论+源码+实战"三位一体的教学模式。学习路径从基础环境搭建到模型优化、容器化部署、多硬件平台适配,最终掌握工业级AI部署能力。特色包括C++基础教学、Docker容器化、INT8量化、多线程优化等核心技术,并附带YOLOv5、人脸检测、车牌识别等多个实战项目源码。适合算法工程师转部署方向、嵌入式开发者及对

FJN110的博客 3728

Unity向量点乘和叉乘实例应用

点乘因为计算的是角度,所以在计算的过程中需要格式化向量 叉乘计算的是垂直于2个计算向量的一个向量,计算过程中不需要格式化

Unity3d 攻城师一枚 2768

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Unity 点乘(Dot)、叉乘(Cross)判断移动方向、朝向等向量问题

Unity 点乘(Dot)、叉乘(Cross)判断移动方向、朝向等向量问题项目中常会用到物体移动,追踪,判断两物体移动方向是否相同,两物体移动方向夹角,以及物体 A 朝 物体 B 顺时针方向还是逆时针方向移动。物体 A 在 物体 B 的前后左右方向。 下面通过点乘(Dot)、叉乘(Cross), 得到上面的需求结果。代码如下 using UnityEngine; using System.Coll................................................

lq 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: VsCode文件结构概述
下一篇: VS+QT配置
LearnToStick
博客等级 码龄9年 11粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值