矩阵

python_矩阵转置

百般思念 提交于 2020-01-30 09:46:10
矩阵转置 """ 矩阵转置 算法:将list01中每列,存储到list02中每行 """ list01 = [ [ 1 , 2 , 3 , 4 ] , [ 5 , 6 , 7 , 8 ] , [ 9 , 10 , 11 , 12 ] , ] list02 = [ ] for c in range ( len ( list01 [ 0 ] ) ) : line = [ ] for r in range ( len ( list01 ) ) : line . append ( list01 [ r ] [ c ] ) list02 . append ( line ) print ( list02 ) 来源: CSDN 作者: 李富贵︴ 链接: https://blog.csdn.net/weixin_46198526/article/details/104108245

螺旋矩阵(Java)

懵懂的女人 提交于 2020-01-30 04:59:30
给定一个包含 m x n 个元素的矩阵( m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出: [1,2,3,4,8,12,11,10,9,5,6,7] 思路1:模拟 绘制螺旋轨迹路径,我们发现当路径超出界限或者进入之前访问过的单元格时,会顺时针旋转方向。 算法 假设数组有R行C列,seen[r][c] 表示第 r 行第 c 列的单元格之前已经被访问过了。当前所在位置为(r, c),前进方向是di。我们希望访问所有 R x C 个单元格。 当我们遍历整个矩阵,下一步候选移动位置是(cr, cc)。如果这个候选位置在矩阵范围内并且没有被访问过,那么它将会变成下一步移动的位置;否则,我们将前进方向顺时针旋转之后再计算下一步的移动位置。 题解: class Solution1{ public List<Integer>spiralOrder(int[][] matrix){ //定义一个链表 List ans = new ArrayList(); //矩阵为空则返回空链表 if(matrix.length ==

【C语言】08-数组

会有一股神秘感。 提交于 2020-01-30 04:33:44
为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 地址 1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。 2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 回到顶部 一、一维数组 1.一维数组的定义 * 定义的形式为: 类型 数组名[元素个数] int a[5]; * []只能放在数组名的后面,下面的都是错误写法: int[5] a; // 错误 int[] b; // 错误 * []里面的个数必须是一个固定值,可以是常量(比如6、8)、常量表达式(比如3+4、5*7)

【C语言】08-数组

 ̄綄美尐妖づ 提交于 2020-01-30 04:33:08
本文目录 地址 一、一维数组 二、二维数组 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 回到顶部 地址 1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。 2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 回到顶部 一、一维数组 1.一维数组的定义 * 定义的形式为: 类型 数组名[元素个数] int

C语言 08-数组

冷暖自知 提交于 2020-01-30 04:32:16
本文目录 地址 一、一维数组 二、二维数组   说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略。 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 地址   1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。   2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 一、一维数组 1.一维数组的定义 * 定义的形式为:类型 数组名[元素个数] int a[5]

【C语言】08-数组

∥☆過路亽.° 提交于 2020-01-30 04:31:01
本文目录 地址 一、一维数组 二、二维数组 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 回到顶部 地址 1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。 2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 回到顶部 一、一维数组 1.一维数组的定义 * 定义的形式为: 类型 数组名[元素个数] int

Java学习笔记(五)——数组

久未见 提交于 2020-01-30 04:22:14
一、数组使用方法 1、 声明数组 语法: 数据类型[ ] 数组名; 或者 数据类型 数组名[ ]; 其中,数组名可以是任意合法的变量名 2、 分配空间 简单地说,就是指定数组中最多可存储多少个元素 语法: 数组名 = new 数据类型 [ 数组长度]; 3、 赋值 分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的,例如向 scores 数组中存放学生成绩 4、 处理数组中数据 我们可以对赋值后的数组进行操作和处理,如获取并输出数组中元素的值 二、Arrays 中常用的方法: 1、 排序 语法: Arrays.sort(数组名); 可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排序(按升序排列) 2、 将数组转换为字符串 可以使用 Arrays.toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开 三、使用foreach操作数组 1、语法 2、一个demo 四、二维数组 1、 声明数组并分配空间 2、 赋值 二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始 3、 处理数组 二维数组的访问和输出同一维数组一样,只是多了一个下标而已。在循环输出时,需要里面再内嵌一个循环

Convolution Layer:卷积层

自作多情 提交于 2020-01-30 03:52:50
1. 卷积层(Convolution Layer):由若干个卷积核f(filter)和偏移值b组成,(这里的卷积核相当于权值矩阵),卷积核与输入图片进行点积和累加可以得到一张feature map。 卷积层的特征: (1)网络局部连接:卷积核每一次仅作用于图片的局部 (2)卷积核权值共享:一个卷积层可以有多个不同的卷积核,每一个filter在与输入矩阵进行点积操作的过程中,其权值是固定不变的。 2. 卷积核(filter):用于提取图片的局部特征,不同的卷积核提取图片特征的效果不同。 感受野:卷积核的大小 / 范围,卷积核所能感知的区域 一个卷积层可以有若干个卷积核,卷积核的通道数=输入图片的通道数,每一个卷积核的通道与图片的对应通道进行点积+累加的操作,可以得到1个featrue map,假设有3个通道,那么可以得到3个featrue map,然后把这3个feature map对应的位置相加,即可得到1张featrue map,得到的这一张就是该卷积核与图片进行卷积操作的feature map。一般图片有3个通道,red、green、bule,然后卷积核的通道数为3,分别对应r、g、b,然后这对应的三个通道分别点积+累加,得到3个feature map,最后再把这3张feature ma相加,然后再加上偏移值b,就可以得到1张feature map。 3. 卷积层的运行: ①输入

MATLAB 常用函数 size()Zeros() ones() inf() ceil()等取整函数 randperm() find() sum() cumsum()

左心房为你撑大大i 提交于 2020-01-30 01:52:08
1.size():获取矩阵的行数和列数 1、s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是矩阵的行数,第二个元素是矩阵的列数。 2、[r,c]=size(A),当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。 3、size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。 ———————————————— CSDN博主「幸福在路上wellbeing」 https://blog.csdn.net/xingfuyusheng/article/details/88674860 2.Zeros用法 zeros函数——生成零矩阵 A=zeros(2,3) zeros zeros A = 0 0 0 0 0 0 B=zeros(3) B = 0 0 0 0 0 0 0 0 0 源于百度百科 3.ones ones函数——生成全1阵 4.inf inf为无穷大量+∞,-inf为无穷小量-∞ 比如1 / 0的结果就是inf 5.ceil等取整函数 ceil函数的作用是朝正无穷方向取整,即将m/n的结果向正无穷方向取整,如m/n=3.12

LeetCode刷题笔记 48. 旋转图像

偶尔善良 提交于 2020-01-30 01:02:11
48. 旋转图像 题目要求 题解 题目要求 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [ 1,2,3 ] , [ 4,5,6 ] , [ 7,8,9 ] ] , 原地旋转输入矩阵,使其变为: [ [ 7,4,1 ] , [ 8,5,2 ] , [ 9,6,3 ] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11 ] , [ 2, 4, 8,10 ] , [ 13, 3, 6, 7 ] , [ 15,14,12,16 ] ] , 原地旋转输入矩阵,使其变为: [ [ 15,13, 2, 5 ] , [ 14, 3, 4, 1 ] , [ 12, 6, 8, 9 ] , [ 16, 7,10,11 ] ] 题解 https://github.com/soulmachine/leetcode class Solution { public : void rotate ( vector < vector < int >> & matrix ) { const int n = matrix . size ( ) ; for ( int i = 0 ; i < n ; i ++ ) //