05.数组工具类_二维数组_方法的使用

数组工具JAVA类 java的数组操作类 立即下载

第一章.数组工具类

1.数组工具类

1.1.System类

1.概述:java自带的类
2.特点:方法都是带static的
3.使用:
  类名直接点
方法说明
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)src:源数组,复制哪个数组中的元素
srcPos:从源数组的哪个索引开始复制
dest:目标数组,将元素复制到哪个数组中去
destPos:从目标数组的哪个索引开始粘贴
length:复制多少个元素
public class Demo01System {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int[] arr2 = new int[5];

        System.arraycopy(arr,0,arr2,0,3);

        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }
    }
}

1.2.Arrays类

1.概述:java自带的类,是数组工具类
2.作用:操作数组
3.特点:方法都是带static的
4.使用:
  类名直接调用
方法说明
String toString(数组)按照[元素1,元素2…]格式打印
void sort(数组)数组升序排序
int binarySearch(数组,要查找的元素)二分查找,返回元素对应的索引
int[] copyOf(数组,新数组长度)数组扩容,返回新数组
public class Demo02Arrays {
    public static void main(String[] args) {
        int[] arr = {5,4,3,2,1};
       //String toString(数组)          按照[元素1,元素2...]格式打印
        System.out.println(Arrays.toString(arr));
       //void sort(数组)                数组升序排序
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
       //int binarySearch(数组,要查找的元素) 返回元素对应的索引

        int[] arr2 = {1,2,3,4,5,6,7,8,9};
        int index = Arrays.binarySearch(arr2, 10);
        System.out.println(index);
       //int[] copyOf(数组,新数组长度),返回新数组
        int[] newArr = Arrays.copyOf(arr2, 20);
        System.out.println(Arrays.toString(newArr));
        arr2 = newArr;
        System.out.println(Arrays.toString(arr2));
    }
}

2.Hutool工具

1.概述:属于第三方工具
2.使用:
  如果使用第三方提供的技术或者工具,都需要在当前项目环境下,引入第三方环境(第三方提供的jar包)
3.什么是jar包:
  jar就是一个压缩包,里面装的都是一些工具类的class文件

官网:https://www.hutool.cn/

2.1.引入jar

怎么引入jar包: -> 相当于将jar解压
  a.在当前模块下,右键 -> new -> Directory -> 取名为lib或者libs
  b.对着lib或者libs右键 -> add as library -> level选择module -> 此时name栏会变成空的,不要管 -> 直接ok

2.2.ArrayUtil工具类

方法说明
int max(数组)返回数组最大值
int indexOf(数组,要查找的数据)顺序查找,指定的数据在数组中的位置
reverse()数组翻转
public class Demo03HuTool {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        //int max(数组)返回数组最大值
        System.out.println(ArrayUtil.max(arr));

        //int indexOf(数组,要查找的数据)顺序查找,指定的数据在数组中的位置
        System.out.println(ArrayUtil.indexOf(arr, 3));

        //reverse()数组翻转
        ArrayUtil.reverse(arr);
        
        //调用的是hutool的toString方法,不是Arrays中的
        System.out.println(ArrayUtil.toString(arr));
    }
}

第二章.二维数组

2.1二维数组的定义格式

1.动态初始化
  数据类型[][] 数组名 = new 数据类型[m][n]
  数据类型 数组名[][] = new 数据类型[m][n]
  数据类型[] 数组名[] = new 数据类型[m][n] 
    
  m:代表的是二维数组长度
  n:代表的是每一个一维数组的长度
      
  如果不指定n(代表没有指定一维数组长度),那么相当于一维数组没有被创建出来
      
2.静态初始化
  数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...}...}
  数据类型 数组名[][] = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...}...}
  数据类型[] 数组名[] = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...}...} 
public class Demo01TwoArray {
    public static void main(String[] args) {
        //动态初始化
        int[][] arr = new int[3][3];
        int[][] arr2 = new int[3][];
        //静态初始化
        String[][] arr3 = {{"孙悟空","猪八戒","唐僧"},{"熊大","熊二"},{"百变小樱魔术卡","铁甲小宝","蜻蜓队长"}};
    }
}

2.2获取二维数组长度

1.格式:
  数组名.length
public class Demo02TwoArray {
    public static void main(String[] args) {
        String[][] arr1 = {{"孙悟空","猪八戒","唐僧"},{"熊大","熊二"},{"百变小樱魔术卡","铁甲小宝","蜻蜓队长"}};
        System.out.println(arr1.length);
        System.out.println("========================");
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i].length);
        }
    }
}

2.3获取二维数组中的元素

1.格式:
  数组名[i][j]
      
  i:代表的是一维数组在二维数组中的索引位置
  j:代表的是元素在一维数组中的索引位置
public class Demo03TwoArray {
    public static void main(String[] args) {
        String[][] arr1 = {{"孙悟空","猪八戒","唐僧"},{"熊大","熊二"},{"百变小樱魔术卡","铁甲小宝","蜻蜓队长"}};
        System.out.println(arr1[0][0]);
        System.out.println(arr1[1][1]);
        System.out.println(arr1[2][2]);
    }
}

2.4二维数组中存储元素

1.格式:
  数组名[i][j] = 值
      
  i:代表的是一维数组在二维数组中的索引位置
  j:代表的是元素在一维数组中的索引位置
public class Demo04TwoArray {
    public static void main(String[] args) {
        String[][] arr1 = new String[3][3];
        arr1[0][0] = "孙悟空";
        arr1[0][1] = "猪八戒";
        arr1[0][2] = "唐僧";

        arr1[1][0] = "熊大";
        arr1[1][1] = "熊二";
        arr1[1][2] = "百变小樱";

        arr1[2][0] = "铁甲小宝";
        arr1[2][1] = "蜻蜓队长";
        arr1[2][2] = "小懒猪";

        System.out.println(arr1[0][0]);
        System.out.println(arr1[0][1]);
        System.out.println(arr1[0][2]);
        System.out.println(arr1[1][0]);
        System.out.println(arr1[1][1]);
        System.out.println(arr1[1][2]);
        System.out.println(arr1[2][0]);
        System.out.println(arr1[2][1]);
        System.out.println(arr1[2][2]);

    }
}

2.5.二维数组的遍历

1.嵌套循环:
  外层循环遍历二维数组,将每一个一维数组获取出来
  内层循环遍历一维数组,将每一个元素获取出来
public class Demo05TwoArray {
    public static void main(String[] args) {
        String[][] arr1 = new String[3][3];
        arr1[0][0] = "孙悟空";
        arr1[0][1] = "猪八戒";
        arr1[0][2] = "唐僧";

        arr1[1][0] = "熊大";
        arr1[1][1] = "熊二";
        arr1[1][2] = "百变小樱";

        arr1[2][0] = "铁甲小宝";
        arr1[2][1] = "蜻蜓队长";
        arr1[2][2] = "小懒猪";

        for (int i = 0; i < arr1.length; i++) {
            for (int j = 0; j < arr1[i].length; j++) {
                System.out.println(arr1[i][j]);
            }
        }

    }
}

第三章.方法的使用

1.概述:拥有功能性代码的代码块,将来开发,一个按钮就应该对应一个功能,一个功能就应该定义一个方法
2.方法通用定义格式:
  修饰符 返回值类型 方法名(参数){
      方法体
      return 结果
  }

  无参无返回值方法
  有参无返回值方法
  无参有返回值方法
  有参有返回值方法

1.无参无返回值方法定义和调用

1.格式:
  public static void 方法名(){
      方法体
  }

2.注意:
  void:代表的是无返回值
      
3.调用:在其他方法中
  方法名();
定义一个方法,实现两个整数相加
public class Demo01Method {
    public static void main(String[] args) {
        method01();
        System.out.println("哈哈");
    }

    /**
     * 无参无返回值方法
     */
    public static void method01(){
        int a = 10;
        int b = 20;
        int sum = a+b;
        System.out.println(sum);
    }
}

1.方法之间不能嵌套

2.方法不调用不执行,main方法是jvm自动调用的

3.方法的执行顺序只和调用顺序有关

2.方法定义各部分解释

1.方法通用定义格式:
  修饰符 返回值类型 方法名(参数){
      方法体
      return 结果
  }

2.各部解释:
  a.修饰符:目前固定为public static
  b.返回值类型: 方法运行完毕,最终返回的结果的数据类型 
               void 和 return 结果不能共存的
     
               void:代表无返回值
               return 结果:代表有返回值
  c.方法名:见名知意
  d.参数:传递到方法内部执行的数据 -> 数据类型 变量名1,数据类型 变量名1...
  e.方法体:实现该方法的具体代码
  f.return 结果:方法最终返回的数据

3.有参数无返回值的方法定义和执行流程

1.格式:
  public static void 方法名(参数){
      方法体
  }
2.调用:
  方法名(具体的值)
定义一个方法,实现两个整数相加
public class Demo02Method {
    public static void main(String[] args) {
        method01(10,20);
        System.out.println("哈哈");
    }

    /**
     * 有参无返回值方法
     */
    public static void method01(int a,int b){
        int sum = a+b;
        System.out.println(sum);
    }
}

4.无参数有返回值定义以及执行流程

1.格式:
  public static 返回值类型 方法名(){
      方法体
      return 结果
  }
2.调用:方法的返回值返回给了调用处(哪里调用给哪里)
  a.赋值调用: 数据类型 变量名 = 方法名() -> 推荐使用
  b.打印调用: sout(方法名())  -> 不推荐使用   
定义一个方法,实现两个整数相加,将结果返回
public class Demo03Method {
    public static void main(String[] args) {
        //赋值调用
        int result = method01();
        System.out.println(result);

        //打印调用
        System.out.println(method01());
    }

    /**
     * 有参无返回值方法
     */
    public static int method01(){
        int a = 10;
        int b = 20;
        int sum = a+b;
        return sum;
    }
}


5.有参数有返回值定义以及执行流程

1.格式:
  public static 返回值类型 方法名(参数){
      方法体
      return 结果
  }
2.调用:
  a.赋值调用: 数据类型 变量名 = 方法名(具体的值) -> 推荐使用
  b.打印调用: sout(方法名(具体的值))  -> 不推荐使用  
定义一个方法,实现两个整数相加,将结果返回
public class Demo04Method {
    public static void main(String[] args) {
        int result = method01(10, 20);
        System.out.println(result);
    }
    public static int method01(int a,int b){
        int sum = a+b;
        return sum;
    }
}

6.形参和实参的区别

1.形参:在定义方法的时候,只是形式上定义的参数,此时还没有具体的值
2.实参:在调用方法的时候,给形参赋予的具体的值

作为初学者:

1.先定义,再调用

2.没有返回值的-> 直接调用-> 方法名()

3.有返回值的 -> 赋值调用 -> 数据类型 变量名 = 方法名()

7.参数和返回值的使用时机

1.总结:总的来说,开发中定义的方法基本上都是带参带返回值的方法
====================================================
1.参数的使用时机:当想将方法A中的数据传递到方法B中做操作,方法B在定义的时候就需要带参数,等着接收方法A中的数据
2.返回值的使用时机:方法A调用方法B之后,需要方法B的结果,然后拿到方法B的结果在A中做其他操作,此时方法B就需要将自己的结果返回出去 
public class Demo05Method {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int result = method(a, b);
        if (result > 10){
            System.out.println("结果大于10");
        }else{
            System.out.println("结果不大于10");
        }
    }
    public static int method(int a,int b){
        return a+b;
    }
}

>

8.方法注意事项终极版

1.方法不调用不执行
2.方法之间不能嵌套
3.方法的执行顺序只和调用顺序有关系
4.void不能和[return 值]共存,但是void能和[return]共存
  a.void:代表没有返回值
  b.return 值:代表有返回值,先将结果返回,然后结束方法
  c.return:仅仅代表结束方法,不代表有返回值
5.一个方法中不能return多个值 
6.调用方法时,需要看看有没有这个方法,否则会报错      

第五章.方法的重载(Overload)

1.需求:定义三个方法,分别计算两个整数相加,三个整数相加,四个整数相加
public class Demo01OverLoad {
    public static void main(String[] args) {
        sum(1,2);
        sum(1,2,3);
        sum(1,2,3,4);
    }

    public static void sum(int a,int b){
        System.out.println(a+b);
    }
    public static void sum(int a,int b,int c){
        System.out.println(a+b+c);
    }
    public static void sum(int a,int b,int c,int d){
        System.out.println(a+b+c+d);
    }
}

按住ctrl不放鼠标点击方法名,对象,变量名变成"小手"的时候,单击 -> 会跳到我们调用的位置

1.重载方法:方法名相同,参数列表不同的方法
2.什么叫做参数列表不同:
  参数个数不同
  参数类型不同
  参数类型的顺序不同
      
3.和什么无关
  a.和参数名无关
  b.和返回值无关
public class Demo01OverLoad {
    public static void main(String[] args) {
        sum(1,2);
        sum(1,2,3);
        sum(1,2,3,4);
    }

    public static void sum(int a,int b){
        System.out.println(a+b);
    }

/*    public static int sum(int a,int b){
       return a+b;
    }*/

/*    public static void sum(int x,int y){
        System.out.println(x+y);
    }*/
    public static void sum(int a,int b,int c){
        System.out.println(a+b+c);
    }
    public static void sum(int a,int b,int c,int d){
        System.out.println(a+b+c+d);
    }
}

public static void open(){}
public static void open(int a){}
static void open(int a,int b){}
public static void open(double a,int b){}
public static void open(int a,double b){}
public void open(int i,double d){}
public static void OPEN(){}
public static void open(int i,int j){}

使用场景:功能一样,但是实现细节不一样

动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码 动作识别(三)Win10复现OpenPose1.7.0+ST-GCN代码1.Win10系统配置OpenPose1.7.0的Python API 本人最近在研究基于骨架的动作识别方法,有幸看到端到端的ST-GCN算法,于是决定自己复现一下。(具体原理这里不介绍,大家自行查阅,比如Openpose是个啥?ST-GCN又是个啥?) 1.Win10系统配置OpenPose1.7.0的Python API 安装步骤: (1) ... 阅读详情

相关推荐

三边定位的最小二乘法运用

已知:条件基站到移动台的距离D,基站的坐标(xi,yi,zi) 求:移动台的坐标(x,y,z) 运用最小二乘法的核心是找到最小二乘法的矩阵形式即 Ax=B 在本次实验中通过三边定位计算得到 A=[A;2*(xi-x1),2*(yi-y1),2*(zi-z1]; %系数矩阵A b=[b;D1^2-Di^2+xi^2+yi^2+zi^2-x1^2-y1^2-z1^2]; %增广矩阵b

qq_26250141的博客 1万+

Java常见API——操作数组的工具Arrays

Java类可大致分为三个类:测试类,工具类以及JavaBean类其中测试类就是我们常用的main方法Javabean类就是对一类事物的描述类工具类是帮我们做一些事情的类,但是不描述任何事物的类。

m0_74808313的博客 419

深入解析6T SRAM的读写机制与性能优化

本文深入解析了6T SRAM的基本结构与核心工作原理,详细阐述了其读写操作的具体时序与机制。文章重点探讨了在先进工艺下面临的读写稳定性、写入能力等性能挑战,并系统介绍了写入辅助与读取辅助等关键优化技术,旨在提升SRAM的可靠性与整体性能。

weixin_29205061的博客 1225

Java基础(九)数组工具类

数组工具类

bao_14440的博客 600

T12 电烙铁简单程序逻辑

通过分析就可以知道,发热丝本身即是发热体,也是热偶的工作端。怎么可能是热电动势呢,确实,但不要忘了T12-OUTPUT端的电压是PWM波,理论上是有单片机PWM电压为0 v时的,而T12-OUTPUT端的电压此时也应为0。在T12烙铁头中,PID控制算法通过监测温度传感器的输出,计算当前温度与设定温度之间的差异,并根据这一差异调节加热功率,以实现烙铁头温度的精确控制。这段代码实现了一个简单的增量式PID控制器,通过计算当前温度与期望温度之间的差异以及历史偏差值,调节输出控制量,实现对温度的精确控制。

hgkhjkljnl的博客 1万+

【亲测】ubuntu20.4 安装CUDA11.8

一步一步搭建C++ CUDA CUDNN TENSORRT OPENCV DNN ONNXRUNTIME推理环境

weixin_40950590的博客 3894

Java基础——Arrays工具类详解

JDK 中提供了一个专门用于操作数组的工具类,即Arrays 类,位于java.util 包中。该类提供了一些列方法来操作数组,如排序、复制、比较、填充等,用户直接调用这些方法即可不需要自己编码实现,降低了开发难度。java.util.Arrays 是一个与数组相关的工具类,里面提供了大量静态方法,用来事项数组常见的操作。

weixin_70890083的博客 1756

国科大学习资料--模式识别与机器学习(黄庆明)--期末复习题2(含答案)

国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) ...

无名何许人的博客 1万+

Java中的数组和Arrays工具类

算法的空间复杂度(Space Complexity)是对一个算法在运行过程中占用内存空间大小的量度,记做S(n)=O(f(n)空间复杂度依然使用大O来表示 , 利用程序的空间复杂度,可以对程序运行中需要多少内存有个预先估计 , 避免超出内存限制空间复杂度是看程序运行时占用内存的大小,而不是可执行文件的大小从用户使用体验上看,更看重的程序执行的速度(时间复杂度 ), 一些缓存产品 (redis, memcache)和算法(基数排序)本质就是用空间换时间。

欢迎阅读我的博客 727

【Docker】完美解决拉取镜像超时报错:ERROR: Get https://registry-1.docker.io/v2/

因为我们下载的镜像是外网的镜像资源,所以下载的速度会非常的慢,甚至大概率下载时会报错,所以需要我们配置一个国内的服务器镜像地址,国内服务器镜像地址有很多,这里咱们就说一下阿里镜像加速器的配置方法。

liu_chen_yang的博客 12万+

手把手教你学Simulink--控制策略与算法的DC-DC变换器领域仿真领域建模实例:基于Simulink实现一个双闭环控制Buck变换器的仿真建模

目录主要步骤1. 前期准备2. 构建Buck变换器模型3. 定义双闭环控制器4. 设置参考电压和反馈回路5. 实现双闭环控制器逻辑6. 仿真参数设置7. 运行仿真与结果分析示例整合代码片段1. Simulink模型2. 双闭环控制器参数调节3. 仿真结果分析总结双闭环控制是一种常见的控制策略,广泛应用于电力电子系统(如DC-DC变换器)中。它通过内外两个环路的协同工作,分别控制系统的动态性能和稳态性能。对于Buck变换器,通常采用电流内环和电压外环的双闭环控制结构。以下是一个手把手教程,帮助你基于Simul

MHD0815的博客 325

Arrays(数组)工具类

java.util.Arrays 是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。

小丁的博客 847

R语言实战应用精讲50篇(二)-多重线性回归系列之稳健回归

前言 线性回归的参数估计主要采用的是最小二乘法(又称最小平方法),该法是将使观测值与模型预测值之差的平方达到最小的值作为参数估计值。如果数据存在异常点或者异方差,最小二乘法估计会存在偏差,常用的处理策略就是改用稳健回归(Robust Regression)。 稳健回归就是采用更为稳健的参数估计方法来拟合模型,所谓稳健就是数据的波动对参数估计影响不大,比如不受异常值影响,或删除某一观测后对结果影响不大。稳健估计的方法有很多,主要有这么几类:最小绝对值回归(也称最小一乘法回归,lAV),最小中位数二乘法(L

wenyusuran的专栏 3160

day05 数组和二维数组

数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。数据类型[] 数组名int[] arr;char[] arr;就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。数组动态初始化就是只给定数组的长度,由系统给出默认初始化值内存是计算机中的重要原件,临时存储区域,作用是运行程序。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的。

开源驱动,创造价值;坦诚清晰,快速失败;让复杂可计算。 800

深度学习工具包 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'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('DeepLearnToolbox'));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('state',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'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',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 = 'sigm';%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, 'Too big error');```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('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';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)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';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, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% 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'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 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, 'Too big error');```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('state',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, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',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, 'Too big error');%% ex3 neural net with dropoutrand('state',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, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % 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, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % 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, 'Too big error');%% 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('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % 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, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java二维数组的遍历

但是请注意,这种方式的动态初始化虽然有时很方便,但在处理更复杂的数组操作时可能会带来一些困惑,因为它与常规的静态初始化方式有所不同。在动态初始化时,可以先声明二维数组,然后逐个对每个子数组进行初始化。默认初始化是在声明二维数组后不进行任何初始化,这时数组的所有元素都将被自动初始化为默认值(对于整数类型,默认值为0)。在静态初始化时,每个子数组的大小必须相同,且每个子数组的大小在声明时必须已知。动态初始化是在声明二维数组时只分配内存,然后在需要时再对数组元素进行赋值。

Code-5的博客 3143

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

二维数组

二维数组的概述以及使用 /* * 多维数组本质也是一维数组 * 二维数组 * 本质就是存放了一维数组的数组 * * 格式1: * 数据类型[] 数组名 = new 数据类型[数组的长度]; * 数据类型[][] 数组名 = new 数据类型[m][n]; * m: 二维数组中一维数组的长度 * n: 每一个一维数组中元素的个数 * * int[][] arr ...

zhouym_的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

二维数组及其内存图解

本文主要介绍了,二维数组以及对二维数组的内存进行了图解分析

qq_59750520的博客 3585

第05章_数组(一维数组的使用、内存分析、应用,多维数组的使用,数组的常见算法,Arrays工具类的使用,数组中的常见异常)

需要统计某公司50个员工的工资情况,例如计算平均工资、找到最高工资等。用之前知识,首先需要声明50个变量来分别记录每位员工的工资,这样会很麻烦。因此我们可以将所有的数据全部存储到一个容器中统一管理,并使用容器进行计算。**生活中的容器:**水杯(装水等液体),衣柜(装衣服等物品),集装箱(装货物等)。**程序中的容器:**将多个数据存储到一起,每个数据称为该容器的元素。因为第一个元素距离数组首地址间隔0个单元格。Java 语言里提供了支持多维数组的语法。如果说可以把一维数组当成几何中的线性图形。

小丁的博客 1139

JAVA基础day05: 数组(声明、调用、复制、Arrays工具类)

JAVA基础day05: 数组(声明、调用、复制、Arrays工具类)数组数组的概述概念数组的特点数组的分类一维数组的使用1.一维数组的声明和初始化2.通过角标,给数组指定位置元素赋值3.获取数组的长度4.遍历数组元素5.数组的默认初始化值6.一维数组的内存解析二维数组的使用二维数组概念1.二维数组的声明和初始化2.二维数组元素的调用3.获取二维数组的长度4.遍历二维数组5.二维数组元素的默认初始化值数组的复制数组的复制Arrays工具类的使用判断两个数组是否相等输出数组信息将指定值填充到数组中对数组进行排

wx222y的博客 390

05 二维数组与三种简单排序

十大经典排序算法(动图演示) - 一像素 - 博客园(这个网站排序算法很全面) 一.选择排序 思路:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 (索引) 表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法..

m0_51351504的博客 3368

js一维数组转二维数组(生成二维数组)

111

qq_37493515的博客 4885

Java基础 二维数组、增强for循环、方法的调用、方法重载

Day05一、二维数组二、增强for循环三、方法1、方法的申明与调用2、方法重载四、总结 一、二维数组 二、增强for循环 如下图所示,创建一个整型数组,我们就是要遍历它。 java中增强for循环的使用(遍历数组和集合) 然后创建一个for循环,但是循环条件和普通for循环条件不同。 for(int num : a) 条件中首先定义一个变量整型变量num,这个变量类型的和数组存放的类型是...

qq_45451251的博客 2826

mdk定义二维数组_C语言数组 二维数组

点击上方“学士科技”,选择“设为星标”资讯、技术干货第一时间送达!01.C语言基础-数据类型02.C语言中算法的基本特性和表达方式03.C语言中的输入输出函数04.C语言基础-循环控制语句05.C语言基础-条件控制语句06.C语言基础-控制语句示例07.C语言数组- 一维数组前面介绍了一维数组,接下来介绍如何定义和使用二维数组。二维数组定义的一般形式如下:类型说明符 数组名[常量表达式1...

weixin_39724382的博客 1467

python输入input数组_Python输入二维数组方法

Python输入二维数组方法更新时间:2018年04月13日 10:13:56 作者:pkuout下面小编就为大家分享一篇Python输入二维数组方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘。这里以输入1-9,3*3矩阵为例n=int(input())line=[[0]*n]*nfor i in rang...

weixin_39888807的博客 1156

第05章 数组 15 二维数组

鱼欲遇雨:每日都学习一点,持之以恒,天道酬勤!不能用电脑时,提前补上!(2012.8.21) 第05章 数组 08 练习6 作业也将在25号自己独立完成!  二维数组 二维数组可以看成以数组为元素的数组。例如           int a[] [] = { { 1, 2}, {3, 4, 5, 6}, { 7, 8, 9 } }; java中多维数组的声明和初始化应按照从高维到低维的顺

jinhongliang123的专栏 780

二维数组 赋值_数组,及二维数组

1.1 命令行参数(C)在程序运行过程中,可以向应用程序传递一些参数,这些参数称为命名行参数。 public class Test01{ public static void main(String[] args){ System.out.println(args.length); for(int i= 0;i<args.length;i++){ System.out....

weixin_36246029的博客 3047
上一篇: 04.数组
下一篇: 06_可变参数_递归_类和对象_封装
ChoSeitaku
博客等级 码龄5年 3452粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值