矩阵

测验:Neural Networks: Representation(week4)

二次信任 提交于 2020-03-12 12:24:49
A:XOR两层是不行的 B:sigmoid函数的输出值范围是0~1 C:二分类问题可用神经网络来表示 D:也有可能是0 分析权重,发现只有在x1,x2同时为1的情况下输出才是1,可知是AND函数 4. 5. 第一个矩阵中第一第二行换了位置,可视为Layer2中除了+1外的两个结点换了位置,第二个矩阵第二第三列换了位置,可视为两条表示权重的线换了位置(图上标了出来),这样子跟原来表示的一样,输出的结果也是一样的 来源: CSDN 作者: 僵尸吃了Dave的脑子 链接: https://blog.csdn.net/weixin_43200146/article/details/104813978

LeetCode中等: 旋转图像

做~自己de王妃 提交于 2020-03-12 08:52:52
LeetCode中等: 旋转图像(C#) 题目描述 :给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明 :你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 思路 :假设我们现在有一个4 * 4的矩阵,那么直观的来看就是需要将1移动到4,4移动到16,16移动到13,13移动到1,可以简单的表示为1-4-16-13-1。同理还有2-8-15-8-2,5-3-12-14-5以及6-7-11-10-6。可以得出结论,需要关心的区域为黄色框中的数字,只需要遍历黄色区域中的数字,再按照上述顺序移动数字即可。对于偶数阶矩阵,黄色区域应当为将整个矩阵四分之后的左上角区域,即(矩阵阶数 / 2) * (矩阵阶数 / 2)。 值得注意的地方 是对于一个奇数阶矩阵而言,黄色部分应当如下图所示,即(矩阵阶数 / 2+1)*(矩阵阶数/2)。 ok,再有以上思路之后,我们需要考虑的是如何去移动数字。将移动到的位置记为(next_i,next_j),当前位置记为(current_i,current_j),可以发现 next_i = current_j以及next_j = length - 1 - current_i ,这里的length指的是矩阵的阶数。 上代码: public void Rotate ( int [ ] [ ]

使用ivx学习开发表格布局的经验分享

情到浓时终转凉″ 提交于 2020-03-12 08:25:15
今天想与大家分享的ivx学习经验是关于表格布局的使用,分析使用的依然是ivx官网的demo,再次疯狂安利官网的demo库,网址是https://demo.ivx.cn/,我分享所使用的demo均出自于此,使用表格布局的话会方便于我们跨行和跨列布局,是布局方式变得灵活,接下来分享下我对于官网的表格布局demo的理解: demo中的表格布局主要是将表格用二维数组表示,然后通过利用for循环来将二维数组的行列表现出来,从而达到表格展示的效果。先创建一个二维数组,侧边栏与内容区,关于侧边栏的使用可以参考我之前分享的经验,地址:https://blog.csdn.net/VXLab/article/details/104801336 2.利用for循环将二维数组展示出来,这里官网的demo的二维数组都是相同的内容,表格内容也全部用同一张图片表示,这样行列添加删除的效果就能一目了然,突出行列变化。这里用了2个循环,第一个循环是将数组中的每一行依次展示,第二个循环是将当前行中的每一列也就是当前行的每一个元素依次展示循环数据来源为当前数据1,每有一个元素,就会展示一个图片作为表格单元。 3.在侧边栏按照需要创建好组件后给每个组件添加事件,从而使内容区的展示结果达到行列增删的效果。 因为循环展示的表格数据是与二位数组绑定的,所以我们通过改变二维数组的行列增减,就能达到对表格行列的增删变化。 总结

螺旋矩阵

独自空忆成欢 提交于 2020-03-12 04:10:49
问题描述: 给定一个包含 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] 问题分析: 旋转操作必存在方向的转变。对于一个二维数组(矩阵)而言,顺时针旋转只存在四次方向的改变(右下左上)。假设我们的初始方向是向右,当不能继续向右时,我们就要将方向改变为向下(因为是顺时针旋转),当不能继续向下前时,改变方向为向左,以此类推。。。 在这里,说明一下什么情况下我们就不能按照原方向访问元素。当我们找到的下一个坐标越界或者下一个坐标的元素已经被访问过,此时,我们就不能按照原方向访问了。 因此,我们需要一个标志数组,记录矩阵中的每一个元素是否被访问过。 代码实现: class Solution { public List < Integer > spiralOrder ( int [ ] [ ] matrix ) { List ans = new ArrayList ( ) ; if ( matrix . length == 0

练习7-7 矩阵运算 (20分)

こ雲淡風輕ζ 提交于 2020-03-12 02:21:02
给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 输入格式: 输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。 输出格式: 在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。 输入样例: 4 2 3 4 1 5 6 1 1 7 1 8 1 1 1 1 1 输出样例: 35 解答: #include<stdio.h> int main(){ int n,sum=0,a[11][11]={0}; scanf("%d",&n); for(int i=0;i<n;i++){ for(int j = 0;j<n;j++){ scanf("%d",&a[i][j]); if(i==n-1||j==n-1||i+j==n-1); else{ sum+=a[i][j]; } } } printf("%d",sum); return 0; } 来源: CSDN 作者: youandworld 链接: https://blog.csdn.net/qq_30377869/article/details/104766440

卷积核与特征提取

試著忘記壹切 提交于 2020-03-11 19:55:34
原文地址: https://www.cnblogs.com/zongfa/p/9130167.html 线性滤波与卷积的基本概念 线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。 对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置,这个操作就叫卷积或者协相关。卷积和协相关的差别是,卷积需要先对滤波矩阵进行180的翻转,但如果矩阵是对称的,那么两者就没有什么差别了。 Correlation 和 Convolution可以说是图像处理最基本的操作,但却非常有用。这两个操作有两个非常关键的特点:它们是线性的,而且具有平移不变性shift-invariant。平移不变性指我们在图像的每个位置都执行相同的操作。线性指这个操作是线性的,也就是我们用每个像素的邻域的线性组合来代替这个像素。这两个属性使得这个操作非常简单,因为线性操作是最简单的,然后在所有地方都做同样的操作就更简单了。 实际上,在信号处理领域,卷积有广泛的意义,而且有其严格的数学定义,但在这里不关注这个。

Qt之坐标系统

拜拜、爱过 提交于 2020-03-11 19:51:13
简述 坐标系统是由QPainter类控制的,再加上QPaintDevice和QPaintEngine类,就形成了Qt的绘图体系。 QPainter:用于执行绘图操作。 QPaintDevice:二维空间的抽象层,可以使用QPainter在它上面进行绘制。 QPaintEngine:提供了统一的接口,用于QPainter在不同的设备上进行绘制。 QPaintDevice类是可以被绘制的对象的基类,它的绘图功能由QWidget、QImage、QPixmap、QPicture和QOpenGLPaintDevice继承。默认坐标系统位于设备的左上角,即坐标原点(0, 0)。X轴由左向右增加,Y轴由上向下增加。在基于像素的设备上(比如:显示器),坐标的默认单位是1像素;在打印机上则是1点(1/72 英寸)。 QPainter逻辑坐标与QPaintDevice物理坐标的映射,由QPainter的变换矩阵(transformation matrix)、视口(viewport)和窗口(window)完成。默认情况下,物理坐标与逻辑坐标系统是重合的,QPainter也支持坐标转换,例如:旋转、缩放。 简述 渲染 逻辑表示 锯齿绘制 抗锯齿绘制 坐标转换 窗口-视口转换 渲染 逻辑表示 一个图形图元的大小(宽度和高度)总是对应于它的数学模型,忽略绘制时画笔的宽度: 锯齿绘制 绘制的时候

二维数组最大联通子数组和

假装没事ソ 提交于 2020-03-11 18:59:25
1.设计思想:先用户键盘输入一个自定义的几行几列的矩阵,然后输入相关的值,再调用求二维数组最大联通子数组和的方法,最终输出最大值。 2.出现问题:对于求联通子数组的这个思路不是很懂,不清楚。 3.解决方案:先求每行的最大和最小块,再求总的最大值,再将其输出;当列数为1时,当成一维计算; 4.源代码: /*返回一个整数数组中最大子数组的和。 输入一个一维整形数组,数组里有正数也有负数。 一维数组首尾相接,象个一条首尾相接带子一样。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。*/ package shuzumax; import java.util.Scanner; public class shuzuu { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入二维数组的行和列:"); int hang=scanner.nextInt(); int lie=scanner.nextInt(); int[][] shuzu=new int[hang][lie]; int i,j; for(i=0;i<hang;i++) { for(j=0;j<lie;j++) { shuzu[i][j

二维数组

风流意气都作罢 提交于 2020-03-11 18:15:41
二维数组 格式1: int [] [] arr = new int [3] [2] ; · 定义了一个名称为arr的二维数组 · 二维数组中有3个一维数组 · 每一个一维数组中有两个元素 · 一维数组的名称分别为 arr[0], arr[1], arr[2] · 给第一个一维数组1脚标位赋值为78的写法是:arr [0] [1] =78 ; // int [] arr = new int [3] ; (一维) int [ ] [ ] arr = new int [ 3 ] [ 2 ] ; // (二维) // 创建一个二维数组,该数组中有3个一维数组,每一个一维数组中有两个元素。 System . out . println ( arr ) ; // 直接打印二维数组 System . out . println ( arr [ 0 ] ) ; //直接打印二维数组中的角标0的一维数组 System . out . println ( arr [ 0 ] [ 0 ] ) ; //直接打印二维数组中的角标0的一维数组中角标为0的元素。 // 默认初始化值 null // 小数组也是实体,都需要在内存中开辟空间 } 二维数组定义方式和内存图解 来源: CSDN 作者: 别来无恙么 链接: https://blog.csdn.net/melody_zz/article/details

数组,包装器类型

爱⌒轻易说出口 提交于 2020-03-11 14:49:26
包装器类型: java中对象 数据类型 基本数据类 byte short int long float double char boolean 引用数据类型 java是百分之百面向对象的编程语言。 Byte Short Integer Long Float Double Charactor Boolean null: 代表着空,即没有内存地址所引用。 所有的值为null的对象,如果调用了属性或者是方法,则会出现NullPointerException空指针异常。 ==: 比较运算符,比较两个数值是否相等(作用在基本数据类型的时候) 如果作用在两个对象之间,比较的是两个对象的内存地址是否相等。 java中的数组: 什么是数组? 一组相同类型的有序的长度固定的数据的集合。 java中将数组看作是一个对象。 java中按照维度不同分为: 一维数组 二维数组 ... 多维数组 一维数组: 语法: 1.类型[] 数组对象名称 = {数据1,数据2,...,数据n}; 相同类型: 指的是数组中所包含的元素,都必须是统一的一个类型的元素。 有序: 指的是,数组的下标(索引)有序,数组的下标永远从0开始,到数组的长度-1结束。每一个下标之间+1. 数组的长度: 指的是数组中所包含元素的个数。 如何取出数组中的某一个元素: 数组对象名称[下标] 将数组中的每一个元素都可以当做是一个变量来看待。