矩阵

delphi 数组定义

谁说胖子不能爱 提交于 2019-12-17 05:17:27
在c语言中 有:a[5]={1,2,3,4,5} ; 那么在 delphi中,这个数组的赋值该怎么写?? 问题补充:下面有人说的对,我就是想在声明数组的时候赋初值,至于初值的内容你们不需要知道,我想知道的只是申明的时候赋值的格式,而不是通过一个过程去实现 var a:=array[1..5] of integer=(1,2,3,4,5) 只有全局变量才能赋初始值,而且5个值都要赋满 s:array[1..264] of integer; s:=((1),(2),(2),(1),(1),(2),(2),(1),(2),(1),(1),(1),(1),(2),(2),(1),(1),(2),(1),(1),(2),(2),(1),(1),(2),(1),(1),(2),(2),(2),(1),(2),(1),(2),(1),(2),(2),(2),(2),(1),(2),(2),(1),(2),(1),(1),(2),(1),(2),(1),(1),(2),(1),(1),(1)); s:=(122112221211111111111111222221212121212121212); 都显示错误哦;C语言可以的哦 静态数组的定义方法 //1. 标准方法: var MyArr: array[0..10] of Integer; //定义静态数组 --------------------

《大学离散数学》图的矩阵表示,无向图关联矩阵,有向图关联矩阵

家住魔仙堡 提交于 2019-12-17 03:15:30
《大学离散数学》图的矩阵表示,无向图关联矩阵,有向图关联矩阵 无向图关联矩阵相关计算 mport numpy as np ramdom_matrix = np . array ( [ [ 1 , 1 , 1 , 0 , 0 , 0 ] , [ 0 , 1 , 1 , 0 , 1 , 0 ] , [ 0 , 0 , 0 , 1 , 1 , 0 ] , [ 1 , 0 , 0 , 1 , 0 , 2 ] ] ) #输入你想算的矩阵 print ( "每条边关联顶点个数" ) print ( sum ( ramdom_matrix ) ) a = 0 for i in range ( 0 , 4 ) : print ( "第" , i , "行元素的度数为" ) print ( sum ( ramdom_matrix [ i ] ) ) a = a + sum ( ramdom_matrix [ i ] ) print ( "根据握手定律,可知顶点度数总和为:" ) print ( a ) 有向图邻接矩阵 import numpy as np ramdom_matrix = np . array ( [ [ 1 , 2 , 1 , 0 ] , [ 0 , 0 , 1 , 0 ] , [ 0 , 0 , 0 , 1 ] , [ 0 , 0 , 1 , 0 ] ] ) #输入需要算的矩阵

学习补漏:指针数组与双重指针形成的二维数组的异同

怎甘沉沦 提交于 2019-12-17 01:28:12
暴露的问题 : (1):对指针数组形成二维数组的理解不深 (2):对普通指针与指针数组的内存情况产生混淆 (3):对new生成的二维数组的delete方法 问题(1):指针数组构建二维数组的原理: 心得理解: ①:指针数组本身就形成了一层数组,若要形成二维数组,仅仅需要新增一层数组内存 ②:所以单纯的指针变量若要形成二维数组,需要形成两层数组(形成指针数组–>形成二维数组) 问题(2):普通指针与指针数组内存情况混淆 (√): int * * p ; //定义双层指针; //【1】正确的写法 //****①分配指针数组内存 p = new int * [ n ] ; //****②由指针数组生成二维数组 for ( int i = 0 ; i < n ; i ++ ) { p [ i ] = new int [ n ] ; //开辟第二层(非指针内存) } //【2】错误的写法 //****①:混淆双层指针与指针数组的内存情况 for ( int i = 0 ; i < n ; i ++ ) { p [ i ] = new int [ n ] ; } //原因分析: 双层指针只分配有单一内存(4个字节),而没有分配相应的内存。 //*****②:混淆动态开辟内存的原理: 错误: int * * p = new int [ n ] ; 分析: ( 1 ) int * p = new

论文笔记之:Dynamic Label Propagation for Semi-supervised Multi-class Multi-label Classification ICCV 2013

邮差的信 提交于 2019-12-17 00:23:10
   Dynamic Label Propagation for Semi-supervised Multi-class Multi-label Classification ICCV 2013   在基于Graph的半监督学习方法中,分类的精度高度依赖于可用的有标签数据 和 相似性度量的精度。此处,本文提出一种半监督的 multi-class and multi-label 分类机制,Dynamic Label Propagation(DLP),是在一个动态的过程中传递,执行 transductive learning。现有的半监督方法一般都很难处理多标签/多分类问题,因为缺乏考虑标签的关系;本文所提出的方法重点强调动态度量和标签信息的融合。       监督的度量学习方法 经常学习马氏距离(Mahalanobis distance),努力缩小相同标签之间的距离,与此同时,尽可能保持或者拉大不同标签图像的距离。 基于Graph的监督学习框架 利用少量的有标签信息去挖掘大量的无标签数据的信息。 Label Propagation 具体的认为在一个Graph中通过信息传递,有较大相似性的由边链接的点趋于拥有相同的标签。另外一种类型的办监督学习方法, 协同训练(Co-training) ,利用多视角特征来相互帮助,拉进无标签数据来重新训练并且增强分类器(by pulling out

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

本秂侑毒 提交于 2019-12-16 23:34:43
题目:返回一个二维整数数组中最大联通子数组的和。 要求: 输入一个二维整形数组,数组里有正数也有负数。 求所有子数组的和的最大值。 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, (用逗号分开) 每一个数字都是有符号32位整数,当然,行数和列数都是正整数。 源程序 /* 设计思路: 1、首先从文件读入一个二维整型数组(有正有负); 2、从数组中选出最小的一个数,如果为负数则除去,检验联通性; 3、联通,接下来找剩余中最小的数,如果为负数则除去,检验联通性;如果为正数,则可得最大的和。 4、如果在检验联通性时不成立,则保存最近的联通数组的和。 5、循环执行第3步,直到保存了所有可能的联通数组的和,找出最大值。 */ package zishuzu1; import java.io.*; public class zishuzu1 { static int b=52345; static int[][] p= new int[100][100]; public static void main(String[] args) throws IOException { File f = new File("input.txt"); BufferedReader buf = new BufferedReader(new

Leetcode 566.重塑矩阵

无人久伴 提交于 2019-12-16 19:21:24
题目描述: 在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。 如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。 示例 1: 输入: nums = [[1,2], [3,4]] r = 1, c = 4 输出: [[1,2,3,4]] 解释: 行遍历nums的结果是 [1,2,3,4]。新的矩阵是 1 * 4 矩阵, 用之前的元素值一行一行填充新矩阵。 示例 2: 输入: nums = [[1,2], [3,4]] r = 2, c = 4 输出: [[1,2], [3,4]] 解释: 没有办法将 2 * 2 矩阵转化为 2 * 4 矩阵。 所以输出原矩阵。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reshape-the-matrix 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 /** * @param {number[][]} nums * @param {number} r * @param {number} c *

OpenCV(二)

最后都变了- 提交于 2019-12-16 18:48:01
1. 前言:Mat类简介   OpenCV 作为强大的计算机视觉开源库,很大程度上参考了MatLab的实现细节和语法风格,比如说,在OpenCV2.x版本以后,越来越多的函数实现了MatLab所具有的功能,甚至干脆连函数名都一模一样(如 imread, imshow,imwriter等)。   在计算机内存中,数字图像以矩阵的形式存储和运算,比如,在MatLab中,图像读取之后对应一个矩阵,在OpenCV中,同样也是如此。   在早期的 OpenCV1.x 版本中,图像的处理是通过IplImage(该名称源于Intel的另一个开源库Intel Image Processing Library ,缩写成IplImage)结构来实现的。早期的OpenCV是用C语言编写,因此提供的借口也是C语言接口,其源代码完全是C的编程风格。IplImage结构是OpenCV矩阵运算的基本数据结构,但是由于是由c语言写的,所以内存等等完全要自己进行控制,很容易出现内存泄漏等等。   到 OpenCV2.x 版本,OpenCV开源库引入了面向对象编程思想,大量源代码用C++重写,Mat类 (Matrix的缩写) 是OpenCV用于处理图像而引入的一个封装类。从功能上讲,Mat类在IplImage结构的基础上进一步增强,并且,由于引入C++高级编程特性,Mat类的扩展性大大提高

二维数组例题习题

落花浮王杯 提交于 2019-12-16 17:07:39
1、对以下二维数组中的二进制数取反 |1,0,0,1| |0,1,1,0| |1,1,0,0| *2、对以下二维数组进行转置 |1,2,3,4| |5,6,7,8| |9,10,J,Q| 3、利用二维数组完成乞丐领赏程序 4、国际象棋棋盘中车、象(含中国象棋“象”)、马的攻击范围 5、打印杨辉三角形前五行 6、计算班级每个学生总分、学科平均分(含表头行、姓名列) 第六题说明: 表结构如下: 程序运行大致界面如下: 输入第1个同学的姓名: 张三 输入语文成绩: 80 输入数学成绩: 90 输入英语成绩: 70 .............. 班级成绩表如下: 其中阿拉伯数字、姓名、学科都应动态输出。 表格中绿色部分由用户输入,红色部分由计算得来。 思路1:二维数组描述全表,计算时需要字符串和数字来回转化。 思路2:如下图 所有数据由两个一维数组和一个二维数组构成。输入输出需要注意逻辑关系,计算可以免转换。 参考代码(思路1): 1 static void Main(string[] args) 2 { 3 int t; 4 var a=new string[5,5]; 5 a[0, 0] = "姓名"; 6 a[0, 1] = "语文"; 7 a[0, 2] = "数学"; 8 a[0, 3] = "英语"; 9 a[0, 4] = "总分"; 10 a[4, 0] = "平均分";

Eigen库介绍及使用入门

 ̄綄美尐妖づ 提交于 2019-12-16 12:10:47
Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。Eigen是一个开源库,从3.1.1版本开始遵从MPL2许可。 为了将Matlab写的运动学程序转化为C++所编写的dll,需要用用到矩阵库Eigen,Eigen库是一个使用C++源码编写的矩阵库,基本上能满足计算中所需要用到的运算,下面介绍一些库的入门学习。 1.首先是关于固定大小矩阵,向量的定义,初始化 #include<iostream> #include<Eigen/Core> using namespace std; using namespace Eigen; //import most commen Eigen types int main(int, char *[]) { Matrix3fm3; //3X3单精度矩阵 m3<< 1, 2, 3, 4, 5, 6, 7, 8, 9; Matrix4fm4 = Matrix4f::Identity();//4X4单位矩阵(单精度) Vector4iv4(1, 2, 3, 4); //长度为4的整形向量 //输出结果 std::cout<< "m3\n" << m3 << "\nm4:\n" <<m4 << "\nv4:\n" << v4 << std::endl; getchar(); return0; } /*学习笔记*/ /