矩阵

二维数组

隐身守侯 提交于 2020-02-13 00:57:42
二维数组的定义和二维数组元素的引用 一、二维数组 1、定义:当数组中的每一个元素带有两个下标时,称这样的数组为二维数组。(在逻辑是可以把二维数组看成一个具有行和列的表格或矩阵) 2、定义语言形式如下 类型名 数组名【常量表达式1】【常量表达式2】 3、二维数组说明符中必须由用两个方括号括起来的常量表达式,常量表达式的值只能是正整数。如果将二维数组当做矩形来看,那么常量表达式1就代表行数,常量表达式2就代表列数。 如int a[3][4] (1)定义了一个名为a的二维数组 (2)数组中的每个元素都是整型 (3)a数组中共有3*4个元素 (4)a数组的逻辑结构是一个具有三行四列的矩阵 其实对于二维数组来说,我们还可以理解为一个特殊的一维数组。将二维数组中的第0行可以看为一个一名为a[0]的一维数组的几个成员,同理对另外几行也成立 二、二维数组元素的引用 引用二维数组元素时必须带有两个下标,引用如下: 数组名 【下标表达式1】【下标表达式2】 int a[3][4]在这样定义的二维数组中, 有a[0][1] a[i][j] a[i+j][j+k] 注意:引用二维数组元素时,一定要把两个下标分别放在两个方括号内,不可以定成a[0,1],a[i,j],a[j+k,i+k] 三、二维数组的初始化 1、所赋值个数与数组元素个数相同 2、每行所赋值个数与数组中个数不同 3、所赋值行数少于数组行数

二维数组中的查找

て烟熏妆下的殇ゞ 提交于 2020-02-12 20:57:31
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 从左下角开始查找, 当要查找数字比左下角数字大时,右移; 当要查找数字比左下角数字小时,上移; 时间复杂度O(r+c),空间复杂度O(1)。 代码 public class Solution { public boolean Find(int target, int [][] array) { int row = array.length; if(row < 1) return false; boolean flag = false; int col = array[0].length; int r = row - 1; for(int c = 0; c < col; c++) { if(r < 0) break; if(array[r][c] == target) { flag = true; break; } else if(array[r][c] > target) { r--; c--; } else { r = row - 1; } } return flag; } } 来源: https://www.cnblogs.com/ustca/p/12300802

论文阅读笔记(十九)【ITIP2017】:Super-Resolution Person Re-Identification With Semi-Coupled Low-Rank Discriminant Dictionary Learning

此生再无相见时 提交于 2020-02-12 16:25:23
Introduction (1)问题描述: super resolution(SP)问题:Gallery是 high resolution(HR),Probe是 low resolution(LR)。 (2)当前存在的问题: ① 当前的半耦合(semi-coupled)矩阵学习是解决SR复原,而不是直接进行行人重识别; ② 行人图片存在噪声,直接使用半耦合矩阵学习无法很好的刻画特征空间。 (3)Contribution: ① 提出一个新的半耦合低秩判别矩阵学习方法(semi-coupled low-rank discriminant dictionary learning approach,SLD 2 L),该方法从图像特征中学习得到高低分辨率字典对,将低分辨率特征映射到高分辨率特征; ② 提出一个多视角 SLD 2 L 方法,对不同类别的特征学习出不同的特征对。 Brief Review (1)SR问题中的耦合字典训练: 目标函数: 其中 x i 和 y i 为HR和LR的一对,且 ,γ 是平衡因子,D x 和 D y 为耦合字典,K 为原子数量,N 为训练样本数量,a 为编码系数。 (2)行人重识别问题中的半监督耦合字典学习(SSCDL): 假定 x = {x 1 , x 2 , ..., x n }, y = {y 1 , y 2 , ..., y m },目标函数: 其中

Tensorflow从入门到精通之——Tensorflow基本操作

家住魔仙堡 提交于 2020-02-12 15:56:06
前边的章节介绍了什么是Tensorflow,本节将带大家真正走进Tensorflow的世界,学习Tensorflow一些基本的操作及使用方法。同时也欢迎大家关注我们的网站和系列教程: http://www.tensorflownews.com / ,学习更多的机器学习、深度学习的知识! Tensorflow是一种计算图模型,即用图的形式来表示运算过程的一种模型。Tensorflow程序一般分为图的构建和图的执行两个阶段。图的构建阶段也称为图的定义阶段,该过程会在图模型中定义所需的运算,每次运算的的结果以及原始的输入数据都可称为一个节点(operation ,缩写为op)。我们通过以下程序来说明图的构建过程: 程序2-1: 程序2-1定义了图的构建过程,“import tensorflow as tf”,是在python中导入tensorflow模块,并另起名为“tf”;接着定义了两个常量op,m1和m2,均为1*2的矩阵;最后将m1和m2的值作为输入创建一个矩阵加法op,并输出最后的结果result。 我们分析最终的输出结果可知,其并没有输出矩阵相加的结果,而是输出了一个包含三个属性的Tensor(Tensor的概念我们会在下一节中详细讲解,这里就不再赘述)。 以上过程便是图模型的构建阶段:只在图中定义所需要的运算,而没有去执行运算。我们可以用图2-1来表示: 图2-1

GPS时间序列分析(二)matlab语言分析

て烟熏妆下的殇ゞ 提交于 2020-02-12 12:25:03
GPS时间序列分析(二) matlab语言分析 1.简单的GPS时间序列 load E:\RMTE.txt yuanshi_dataWeidu = RMTE ( :,4 ) ';%将原始坐标赋值 yuanshi_dataJingdu=RMTE(:,3)' ; yuanshi_dataGaochen = RMTE ( :,5 ) ' ; yuanshi_data = [ yuanshi_dataWeidu ; yuanshi_dataJingdu ; yuanshi_dataGaochen ] ; [ col,raw ] = size ( yuanshi_data ) ; llh_Z_xyz = llh2xyz ( yuanshi_data ) ; %经纬度高程转换成xyz平面坐标,输出格式为:3行n列 %第一次转换后的xyz坐标减去第一次观测的xyz坐标,组成xyz变化量矩阵 llh_Z_xyz_X = llh_Z_xyz ( 1,: ) -mean ( llh_Z_xyz ( 1,: )) ; llh_Z_xyz_Y = llh_Z_xyz ( 2,: ) -mean ( llh_Z_xyz ( 2,: )) ; llh_Z_xyz_Z = llh_Z_xyz ( 3,: ) -mean ( llh_Z_xyz ( 3,: )) ; llh_Z_xyz_XYZ = [ llh_Z

1314矩阵区域和

放肆的年华 提交于 2020-02-11 23:16:12
采取前缀矩阵和的算法,当前位置(i,j)的矩阵和等于位置(i-1,j)与(i,j-1)的矩阵和减去位置(i-1,j-1)的矩阵和最后再加上位置为(i+1,j+1)的元素的值 class Solution { /** * 前缀和矩阵 */ private int [ ] [ ] preSum ; public int [ ] [ ] matrixBlockSum ( int [ ] [ ] mat , int K ) { // 行数和列数不用特判,因为题目已经说了不为 0 int rows = mat . length ; int cols = mat [ 0 ] . length ; // 初始化的时候多设置一行,多设置一列 preSum = new int [ rows + 1 ] [ cols + 1 ] ; for ( int i = 0 ; i < rows ; i ++ ) { for ( int j = 0 ; j < cols ; j ++ ) { preSum [ i + 1 ] [ j + 1 ] = preSum [ i + 1 ] [ j ] + preSum [ i ] [ j + 1 ] - preSum [ i ] [ j ] + mat [ i ] [ j ] ; } } int [ ] [ ] res = new int [ rows ] [

矩阵求导(包含极大似然估计)

房东的猫 提交于 2020-02-11 22:40:50
from https://zhuanlan.zhihu.com/p/24709748 极大似然 https://blog.csdn.net/zengxiantao1994/article/details/72787849 https://zhuanlan.zhihu.com/p/26614750 矩阵求导 注1: 注2: 例子2 极大似然估计 知识: https://blog.csdn.net/zengxiantao1994/article/details/72787849 https://zhuanlan.zhihu.com/p/26614750 贝叶斯公式 随机变量θ表示模型的参数 如果 是已知确定的, 是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点 ,其出现概率是多少。 如果 是已知确定的, 是变量,这个函数叫做似然函数(likelihood function), 它描述对于不同的模型参数,出现 这个样本点的概率是多少。 未完.... 来源: https://www.cnblogs.com/shish/p/12296538.html

Eigen库学习---Map类

早过忘川 提交于 2020-02-11 19:31:50
Eigen 中定义了一系列的 vector 和 matrix ,相比 copy 数据,更一般的方式是复用数据的内存,将它们转变为 Eigen 类型。 Map 类很好地实现了这个功能。 Map定义 Map(PointerArgType dataPtr, Index rows, Index cols, const StrideType& stride = StrideType()) 可以看出,构建map变量,需要三个信息:指向数据的指针,构造矩阵的行数和列数 map相当于引用普通的c++数组,进行矩阵操作,而不用copy数据 Eigen::MatrixXf 动态矩阵和静态矩阵 :动态矩阵是指其大小在运行时确定,静态矩阵是指其大小在编译时确定。 MatrixXd:表示任意大小的元素类型为double的矩阵变量,其大小只有在运行时被赋值之后才能知道。 Matrix3d:表示元素类型为double大小为3*3的矩阵变量,其大小在编译时就知道。 如何选择动态矩阵和静态矩阵 :对于小矩阵(一般大小小于16)使用固定大小的静态矩阵,它可以带来比较高的效率;对于大矩阵(一般大小大于32)建议使用动态矩阵。注意:如果特别大的矩阵使用了固定大小的静态矩阵则可能会造成栈溢出的问题。 矩阵元素的访问 :在矩阵的访问中,行索引总是作为第一个参数,Eigen中矩阵、数组、向量的下标都是从0开始

动手学深度学习之预备知识(MXNET)

馋奶兔 提交于 2020-02-11 17:10:09
动手学深度学习之预备知识(MXNET) 文章目录 动手学深度学习之预备知识(MXNET) 1、数据操作 2、自动求取梯度 3、查阅文档 3.1 查找模块里的所有函数和类 3.2 查找特定函数和类的使用 1、数据操作 MXNET中NDArray类:存储和变换数据的主要工具,提供GPU计算和自动求梯度功能,与NumPy的多维数组类似。 导入模块也称作包含的头文件(nd是ndarray的缩写) from mxnet import nd arange函数创建行向量 shape属性获取NDArray实例的形状(维度) size属性得到NDArray实例中元素的总数 reshape函数修改形状为矩阵 X = x . reshape ( ( 3 , 4 ) ) #生成3*4的矩阵 nd . zeros ( ( 2 , 3 , 4 ) ) #生成两组3*4的矩阵,各个元素都为0 nd . ones ( 3 , 4 ) #生成元素为1的矩阵 随机生成NDArray中每个元素的值 nd . random . normal ( 0 , 1 , shape = ( 3 , 4 ) ) #均值为0,方差为1的正态分布3*4矩阵 支持加减乘除指数等运算(乘法为对应元素相乘) 矩阵乘法(需要保证维度一致) nd . dot ( X , Y . T ) nd . concat ( X , Y , dim = 0

R 基本函数总结

我只是一个虾纸丫 提交于 2020-02-11 09:49:05
基本 一、数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length:求长度 subset:求子集 seq,from:to,sequence:等差序列 rep:重复 NA:缺失值 NULL:空对象 sort,order,unique,rev:排序 unlist:展平列表 attr,attributes:对象属性 mode,typeof:对象存储模式与类型 names:对象的名字属性 二、字符串处理 character:字符型向量 nchar:字符数 substr:取子串 format,formatC:把对象用格式转换为字符串 paste,strsplit:连接或拆分 charmatch,pmatch:字符串匹配 grep,sub,gsub:模式匹配与替换   三、复数 complex,Re,Im,Mod,Arg,Conj:复数函数   四、因子 factor:因子 codes:因子的编码 levels:因子的各水平的名字 nlevels:因子的水平个数 cut:把数值型对象分区间转换为因子 table:交叉频数表 split:按因子分组 aggregate:计算各数据子集的概括统计量 tapply:对“不规则”数组应用函数 数学 一、计算 +,