矩阵

二维数组

爱⌒轻易说出口 提交于 2020-03-28 05:40:44
概念: 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”; 数据结构: int [] [] ; 内存结构图: 初始化方式: 规则二维数组: int[,] Arr = new int[2, 5] { { 1, 2, 3, 5, 6 }, { 1, 2, 3, 4, 5 } }; 不规则二维数组: int [][] arr = new int [3][ ]; 相关算法题: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 class Solution { public bool Find(int target, int[][] array) { int row=0; int col=array[0].Length-1; while(row<=array.Length-1&&col>=0){ if(target==array[row][col]) return true; else if(target>array[row][col]) row++; else col--; } return false; } } 来源: https://www.cnblogs.com/it-dennis/p/9625964.html

numpy中函数shape的用法

社会主义新天地 提交于 2020-03-27 20:57:41
shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。它的输入参数可以使一个整数表示维度,也可以是一个矩阵。这么说你可能不太理解,我们还是用各种例子来说明他的用法: 一维矩阵[1]返回值为(1L,) >>> z.shape (1,) 二维矩阵,返回两个值 >>> m = np.zeros((2,3)) >>> m.shape (2, 3) 一个单独的数字,返回值为空 >>> m = np.zeros(0) >>> m.shape (0,) 我们还可以将shape作为矩阵的方法来调用,下面先创建了一个单位矩阵y >>> y = np.zeros((2,3,4)) >>> y array([[[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]], [[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]]) 我们可以快速读取y的形状 >>> y.shape (2, 3, 4) 假如我们只想读取y的维度,如下所示:   >>> z.shape[0] 1 >>> y.shape[0] 2 >>> y.shape[-1] 4 >>> y.shape[-2] 3 >>> y.shape[2] 4 >>

js 标准二维数组变一维数组的方法

独自空忆成欢 提交于 2020-03-27 06:52:19
问题:[[0, 1], [2, 3], [4, 5]] -> [0, 1, 2, 3, 4, 5]? 方法一 利用 es5 的 arr.reduce(callback[, initialValue]) 实现 var arr1 = [[0, 1], [2, 3], [4, 5]]; var arr2 = arr1.reduce(function (a, b) { return a.concat(b)} ); // arr2 [0, 1, 2, 3, 4, 5] 方法二 利用 es6 var arr1 = [[0, 1], [2, 3], [4, 5]]; function flatten(arr) { return [].concat( ...arr.map(x => Array.isArray(x) ? flatten(x) : x) ) } var arr2 = flatten(arr1); // arr2 [0, 1, 2, 3, 4, 5] 优点: 多维数组也可以 比如:var arr = [[1,2],3,[[[4], 5]]] 方法三 利用 apply 实现 var arr1 = [[0, 1], [2, 3], [4, 5]]; var arr2 = [].concat.apply([], arr1); // arr2 [0, 1, 2, 3, 4, 5] 方法四

R 语言-基础

人盡茶涼 提交于 2020-03-26 07:52:37
R语言 1997年成为GNU项目 开源免费 R官方网址 www.r-project.org R是数据分析领域的语言 小巧灵活,通过扩展包来增强功能 绘图功能 代码简单 开发环境 R + RStudio 1、数据类型 character 字符 numeric 数值型,实数或小数 integer 整型 complex 复数型 logical 逻辑型 类似于boollean 2、数据结构 Vector 向量 Factor 因子 Array 数组 Matrix 矩阵 Data Frame 数据框 List 列表 一维:向量、因子 向量属于数值型变量,因子对应于分类变量 二维:矩阵、数据框 矩阵中元素的数据类型是一致的,数据框由向量组成,每个向量中的数据类型保持一致,向量间的数据类型可以不一致,类似于表结构。 三维:数组、列表 数组用的比较少,多维数据结构;列表可以包含上面所有的数据结构 3、向量 向量表示一组数据,数据类型一致,向量可以表示行或者列 c() 如: : 如: 1:10 seq(from(开始), to(到), by(步长), length.out(指定向量的元素个数), along.with(长度与指定的向量长度相同)) 提取子集: 数字下标(正数:获取指定元素,从1开始,负数:排除的意思) which()函数(按条件来进行筛选) #向量 (x1<- c(10,11,12

Vertex Shader

拜拜、爱过 提交于 2020-03-26 05:53:05
uniform mat4 mvp_matrix; //透视矩阵 * 视图矩阵 * 模型变换矩阵 uniform mat3 normal_matrix; //法线变换矩阵(用于物体变换后法线跟着变换) uniform vec3 ec_light_dir; //光照方向 attribute vec4 a_vertex; // 顶点坐标 attribute vec3 a_normal; //顶点法线 attribute vec2 a_texcoord; //纹理坐标 varying float v_diffuse; //法线与入射光的夹角 varying vec2 v_texcoord; //2d纹理坐标 void main(http://www.amjmh.com) { //归一化法线 vec3 ec_normal = normalize(normal_matrix * a_normal); //v_diffuse 是法线与光照的夹角.根据向量点乘法则,当两向量长度为1是 乘积即cosθ值 v_diffuse = max(dot(ec_light_dir, ec_normal), 0.0); v_texcoord = a_texcoord; gl_Position = mvp_matrix * a_vertex; } --------------------- 来源: https:/

css3 matrix()矩阵

泪湿孤枕 提交于 2020-03-26 04:53:18
参数 matrix()有六个参数:matrix(a,b,c,d,e,f); 这六个参数组成的矩阵与原坐标矩阵相乘计算坐标; 计算 获取当前元素的所有像素点坐标并计算 x' = ax+cy+e y' = bx+dy+f 简单例子  偏移   坐标公式应该为:x' = x + 偏移量; y‘ = y + 偏移量   套用上面的公式那么应该:a = 1; b = 0;c = 0;d = 1; e = x偏移量;f = y偏移量   matrix(1, 0, 0, 1, x偏移量, y偏移量) 缩放   x' = x*x缩放倍数 ; y’ = y*y缩放倍数   a = x缩放倍数 ; b = 0; c = 0; d = y缩放倍数 ; e = 0; f = 0   matrix(x缩放倍数, 0, 0, y缩放倍数, 0, 0);   如:缩小一半, matirx(0.5,0,0,0.5,0,0);  倾斜   x' = a*x + c*y ; y' = b*x +d*y   a = cosθ; b = sinθ; c = sinθ; d = cosθ; e = 0; f = 0;   matrix(cosθ, sinθ, sinθ, cosθ, 0, 0);   如:要水平倾斜30度,只需计算出cos30°和sin30°的值,作为参数a和c的值 matrix(0.866,0,0.5,1

仓库选址(二维前缀和)

人走茶凉 提交于 2020-03-26 04:45:29
链接: https://ac.nowcoder.com/acm/contest/4462/G 来源:牛客网 时间限制:C/C++ 4秒,其他语言8秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 牛能在某小城有了固定的需求,为了节省送货的费用,他决定在小城里建一个仓库,但是他不知道选在哪里,可以使得花费最小。 给出一个 m × n的矩阵,代表下一年小城里各个位置对货物的需求次数。我们定义花费为货车载货运输的距离,货车只能沿着水平或竖直方向行驶。 输入描述: 首先在一行中输入 T,T≤10 ,代表测试数据的组数。 每组输入在第一行给出两个正整数 n,m,1≤n,m≤100 ,分别代表矩阵的宽和高。 接下来m行,每行n个不超过1000的数字,代表矩阵里的元素。 输出描述: 每组输入在一行中输出答案。 输入 3 2 2 1 1 1 0 4 4 0 8 2 0 1 4 5 0 0 1 0 1 3 9 2 0 6 7 0 0 0 0 0 0 0 1 0 3 0 1 2 9 1 2 1 2 8 7 1 3 4 3 1 0 2 2 7 7 0 1 0 0 1 0 0 0 0 0 0 0 输出 2 55 162 备注: 送货时只能单次运输,若该位置需要3次,货车必须跑3次。 即使该位置需要被送货,我们仍然可以选择该位置作为仓库。

液晶拼接大屏的开窗、漫游、分割功能如何实现

不想你离开。 提交于 2020-03-26 00:36:34
在参与一些液晶拼接屏招投标项目时,需求清单上往往会对液晶拼接屏显示有一些特殊要求,比如要实现开窗、漫游、叠加显示或多少路分割显示等功能。然而液晶拼接屏无论如何拼接,它只是一个大的显示屏幕而已,它承担的主要功能是画面显示,要想实现更多的显示功能还要依靠控制设备。常见的开窗、漫游、叠加、分割显示的控制设备主要包括分配器、矩阵、解吗器、外置图像处理器等。那么这些显示功能和控制设备是如何实现呢? 一、各控制设备不同的功能 分配器:当信号源只有一台电脑,要实现一个大画面显示,或者每块液晶拼接屏都显示一个同样的内容时可以应用。 矩阵:在分配器的基础了,可以实现多台电脑输入,并且每块液晶拼接屏都可以显示一个单独画面,但是不能跨屏。 解吗器:包含矩阵功能,同时可以解吗视频监控图像,可以实现单屏单画面、单屏多画面分割(包括4路、9路、12路、16路、32路、64路)显示,但是不能跨屏显示,只要是安防监控显示就必须要用解吗器。 外置图像处理器:兼备矩阵与解吗功能,同时实现叠加漫游、画中画、多路分割等显示功能,其显示效果更加强大。 二、什么是开窗、漫游、叠加功能 开窗功能就是在一块液晶拼接屏的上面再显示一个图像,并且可以在一组屏上显示多个;漫游指的是可以使一个图像在整个屏幕上的任意位置显示,并且可以自由拖动,实现跨屏功能;叠加指的是在一个图像的上面再显示一个图像,它是开窗与漫游的综合体,即要能开窗

《R语言实战》之 创建数据集(第二章,各种数据结构)

梦想与她 提交于 2020-03-25 06:03:24
数据集 2.1数据集概念 概念:通常是由数据构成的矩形数据 不同行业对数据集的行和列叫法不同 行业人 行 列 统计学家 观测(observation) 变量(variable) 数据库分析师 记录(record) 字段(field) 数据挖掘和机器学习研究中 示例(example) 属性(attribute) 可处理的数据类型(模式):数值型、字符型、逻辑型、复数型、原生型(字节) 存储数据的结构:标量、向量、数据、数据框和列表 实例的标识符:rownames(行名);实例的类别型:因子(factors) 2.2数据结构 这节讲了几个数据结构,向量、矩阵、数组、数据框,前三种分别是一维、二维、大于二维的,它们共同点是一个数据结构中,仅能用一种数据的模式,而数据框则可以多种模式。 一些定义 对象:可复制给变量的任何事物,包括常量、数据结构、函数、图形 模式:描述对象如何存储和某各类 数据框:存储数据的一种结构(列表示变量,行表示观测),一个数据框 可存储不同类型的变量 (如数值型、字符型) 2.2.1 向量(一维数据,数值型、字符型、逻辑型) a<- c(1,2,3) #数值型 b<-c("one","two","three")#字符型 c<-c(TRUE,TURE,FALSE) #逻辑型 注意: 1.字符型的向量,元素要加“ ”或者' ',数值型和逻辑型不需要。 2.同一向量

美团笔试--修改矩阵

左心房为你撑大大i 提交于 2020-03-24 23:50:04
我们称一个矩阵为黑白矩阵,当且仅当对于该矩阵中每一个位置如(i, j),其上下左右四个方向的数字相等,即(i-1, j)、(i+1, j)、(i, j-1)、(i, j+1)四个位置上的数字两两相等且均不等于(i, j)位置上的数字。(超出边界的格子忽略) 现在给出一个 n*m 的矩阵,我们想通过修改其中的某些数字,使得该矩阵变成黑白矩阵,请问最少需要修改多少个数字。 输入格式 第一行包含两个整数n和m,表示矩阵的长宽。 接下来n行,每行包含m个整数,用来表示整个矩阵。 输出格式 仅包含一个整数,表示原矩阵变为黑白矩阵最少修改的数字数量。 数据范围 10 5 输入样例1: 3 3 1 1 1 1 1 1 1 1 1 输出样例1: 4 输入样例2: 3 3 1 1 1 1 5 1 1 1 1 输出样例2: 4 所有奇数格的数相等 && 所有偶数格的数相等 && 奇数格上的数不等于偶数格的数记录奇数格上每个数字出现的个数 同样记录偶数格上每个数字出现的个数若奇数格和偶数格出现次数最多的数字相等 比较出现次数第二多的数字所以枚举4种情况 x1 y1 、 x1 y2 、 x2 y1 、 x2 y2(不可能出现) #include <iostream> #include <algorithm> #include <unordered_map> #include <vector> using