矩阵

专题 1 Matlab 基础知识

◇◆丶佛笑我妖孽 提交于 2020-04-02 20:57:20
知识点总结   1.1 matlab 系统环境      操作页面的组成  主窗口,命令行窗口,当前文件夹窗口,工作区窗口。               其中主窗口又包括功能区,快速访问工具栏和当前文件夹工具栏。     搜索路径  变量 > 函数 > 当前文件夹下程序 > 搜索路径下其他文件夹程序           path设置搜索路径方式  path(path, 'filepath') >> clear >> x = sin(1) x = 0.8415 >> sin = [1 2 3] >> sin(1) 1 % 如果出现同名函数/程序,则先执行当前文件夹下的这一个。              1.2 matlab 数值数据     类型的分类         整型   分为有符号数和无符号数。各有8位,16,32,64位           无符号8位整数的数据范围:0 - 2 8 - 1 (255)           有符号8位整数的数据范围:-2 7 - 2 7 - 1 (127) % 有符号 int >> x = int8(129) x= 127 % 无符号 >> x = uint8(129) x = 129       浮点型  single, double % 单精度 single >> class(single(4)) ans = single % 多精度

matlab基础知识

穿精又带淫゛_ 提交于 2020-04-02 20:55:52
MATLAB 数值数据类型 整型 无符8位整型 0~255 函数uint8(data) 将data转无符整型 data超出范围则为127 有符8位整型 -128~127 函数int8 将数值数据转带符号8位整型 浮点型 单精度 4字节 函数single() 将数值数据转单精度 双精度 8字节 默认双精度 函数class()将数值数据转双精度 复数型 实部与虚部默认双精度 虚数单位用i或j表示 函数real() 求实部 函数imag() 求虚部 f ormat 命令: 数据的输出格式 ;只影响数据输出格式,不影响存储与计算 语法 format 格式符 例如format long/short 常用数学函数 函数调用格式:函数名(函数自变量的值) 函数自变量的值为矩阵变量 1、三角函数 例如:sin(x):x以弧度为单位 ; sind(x):x以角度为单位 2、abs函数 求实数的绝对值、复数的mo、字符串的ASCII值 3、取整函数 fix(取小数的整数部分), floor(向下取整), ceil(向上取整), round(四舍五入) 4、函数rem(m,n) m/n的余数 5、y=isprime(x) x矩阵中元素是素数的对应矩阵y元素相应值为1,否则为0 6、sqrt(x) 求x的平方;exp(x) 求e的x次方 变量 1、预定义变量 使用时要避免对其重新赋值 ans默认复制变量

R语言学习笔记——数据结构 & 数据框基本操作

随声附和 提交于 2020-04-02 07:19:08
参考书籍:R语言实战 数据结构: 1. 向量 : 用于存储数值型、字符型或逻辑型数据的一维数组   1.1 创建 : a <- c(1, 2, 3, 4)   1.2 访问 : a[1] : 1        a[c(2, 4)] : 2 4 (向量a中的第二 个和第四个元素)        a[1:4] : 1 2 3 4 (向量a中的第一个直到第四个元素)   1.3 注意 :       1) 单个向量中的数据必须拥有 相同的类型或模式 (数值型、字符型或逻辑型)       2) 标量是只含一个元素的向量,例如f <- 3 、 g <- "US" 和h <- TRUE。它们用于保存常量 2. 矩阵 : 矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)   2.1 创建 : mymatrix <- matrix(vector, nrow=number_of_row, ncol=number_of_col, byrow=logical_value, dimnames=list(char_vector_rownames,                   char_vector_colnames))        其中vector包含了矩阵的元素, nrow和ncol用以指定行和列的维数, dimnames包含了可选的、以字符型向量表示的行名和列名

[数组]顺时针打印螺旋矩阵

僤鯓⒐⒋嵵緔 提交于 2020-03-31 05:03:46
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。 分析:第一次看到这个题目的时候,觉得这个题目很简单,完全不需要用到数据结构或者算法的知识,因此没有兴趣做这道题。后来听到包括Autodesk、EMC在内的多家公司在面试或者笔试里采用过这道题,于是想这么多家公司用它来检验一个程序员的编程功底总是有原因的,于是决定自己写一遍试一下。真正写一遍才发现,要完整写出这道题的代码,还真不是件容易的事情。 解决这道题的难度在于代码中会包含很多个循环,而且还有多个边界条件需要判断。如果在把问题考虑得很清楚之前就开始写代码,不可避免地会越写越混乱。因此解决这个问题的关键,在于先要形成清晰的思路,并把复杂的问题分解成若干个简单的问题。下面分享我分析这个问题的过程。 通常当我们遇到一个复杂的问题的时候,我们可以用图形帮助我们思考。由于我们是以从外圈到内圈的顺序依次打印,我们在矩阵中标注一圈作为我们分析的目标。在下图中,我们设矩阵的宽度为columns,而其高度为rows。我们我们选取左上角坐标为(startX, startY),右下角坐标为(endX,

(模拟) codeVs1160 蛇形矩阵

微笑、不失礼 提交于 2020-03-31 04:57:56
题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和. 输入描述 Input Description n(即n行n列) 输出描述 Output Description n+1行,n行为组成的矩阵,最后一行为对角线数字之和 样例输入 Sample Input 3 样例输出 Sample Output 5 4 3 6 1 2 7 8 9 25 模拟题 注意每次到了增加一圈时,用来判断是否到边界的数要增加2 参考链接 https://blog.csdn.net/zsc2014030403015/article/details/46961725 C++代码: #include<iostream> #include<cstdio> using namespace std; int a[102][102]; int main(){ int n; cin>>n; int i = n/2; int j = n/2; int m = n*n; int cnt = 1; a[i][j] = cnt++; int f = 0; int ff; while(cnt<=m){ f+=2; j++; ff = f;

无监督学习与sklearn库

故事扮演 提交于 2020-03-30 22:40:19
一、无监督学习基础知识 利用无标签的数据学习数据的分布或数据与数据之间的关系被称作无监督学习 有监督学习和无监督学习的最大区别在于 数据是否有标签 无监督学习最常应用的场景是 聚类(Clustering) 和 降维(Dimension Reduction) 二、聚类 聚类是根据数据的“相似性”将数据分为多类的过程。评估两个不同样本之间的“相似性”,通常使用的方法就是计算两个样本之间的“距离”。使用不同的方法计算样本间的距离会关系到聚类结果的好坏 1、欧氏距离 欧氏距离是最常用的一种距离度量方法,源于欧式空间中两点的距离 2、曼哈顿距离 曼哈顿距离也称作“城市街区距离”,类似于在城市之中驾车行驶,从一个十字路口到另一个十字路口的距离 3、马氏距离 马氏距离表示数据的协方差距离,是一种尺度无关的度量方式。马氏距离会先将样本点的各个属性标准化,再计算样本间的距离 4、夹角余弦 余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个样本差异的大小。余弦值越接近于1,说明两个向量夹角越接近0度,表明两个向量越相似 5、sklearn库 scikit-learn库(简称sklearn库)提供的常用聚类算法函数包含在sklearn.cluster这个模块中,如:k-means,近邻传播算法,DBSCAN等。以同样的数据集应用于不同的算法,可能会得到不同的结果,算法所耗费的时间也不尽相同

浅析foreach语句

╄→гoц情女王★ 提交于 2020-03-30 16:46:54
本篇是我对于foreach语句(增强for)的总结: 我的总结流程如下: 1.先整体说明增强for遍历集合与数组之间的区别。 2.通过一维数组来说明(给出反编译的源码,形成对照)。 3.通过二维数组来说明(给出反编译的源码,形成对照)。 4.通过三维数组来说明(给出反编译的源码,形成对照)。 5.通过集合来说明(给出反编译的源码,形成对照)。 6.反编译的介绍以及网站分享。 7.结束。 一.增强for遍历集合与数组之间的区别 其实之前在我还没有学习到迭代器之前我已经总结过这个知识点了,但是在我了解过迭代器之后,我决定将之删掉重写.问过很多人,都说foreach语句无非就是一直在使用迭代器,可是在我真正测试了之后,才发现,并不像大多数人想的那样。 因为我了解到了迭代器的使用只能是在集合中(下面是API文档中的一些解释): 并且对之有所了解的都应该知道,迭代器只是一个接口,他的使用是要通过其实现类来完成的,而只有Collection集合或者其子类才能通过调用iterator方法返回一个实现类对象。 所以说,只有集合是通过迭代器来遍历的,但是数组就不是了,因为数组与集合并不是同一个概念。 再来说说数组与集合的不同之处吧: 1.集合的长度可变,而数组的长度是不可变的。 2.集合可以存储对象与基本类型数据,但是数组只能存储基本类型数据。 二.通过一维数组来说明 普通代码: public

蓝桥杯---最大子阵

醉酒当歌 提交于 2020-03-30 08:45:08
问题描述   给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。   其中,A的子矩阵指在A中行和列均连续的一块。 输入格式   输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。   接下来n行,每行m个整数,表示矩阵A。 输出格式   输出一行,包含一个整数,表示A中最大的子矩阵中的元素和。 样例输入 3 3 -1 -4 3 3 4 -1 -5 -2 8 样例输出 10 样例说明   取最后一列,和为10。 数据规模和约定   对于50%的数据,1<=n, m<=50;   对于100%的数据,1<=n, m<=500,A中每个元素的绝对值不超过5000。 因为要求所有的行列都是连续的,因此我们枚举所有可能情况就行了,但这里有一个技巧,我们可以提前处理好每一列的前n行的和,然后枚举的时候只需枚举一个行的开始,和行的结束,然后对这个范围的所有列(即m的值)进行最大子段和的dp就OK啦,这一过程中不断维护最大值; 其实最后还是转化为求一维数组的最大子段和的最大值 虽然这道题比较简单,但是比较典型,也算是个DP吧。。。 #include <iostream> #include <cstring> using namespace std; #define inf 0x3f3f3f3f; int n,m; int a[505][505],b[505]

Matlab - 基础知识

烂漫一生 提交于 2020-03-30 02:11:55
Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列;dim=2 按行 (2)这本书很垃圾,不建议买。 (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 第2章 Matlab基础知识 2.1 数据类型 数值,逻辑,字符串,函数句柄,结构体,单元数组 2.1.1 数值类型 int8,uint8;int16,uint16;int32,uint32;int64,uint64  整数型 single 单精度 double 双精度 (默认) 示例:int32(820) 查看数值类型 class() 函数 向下取整 floor(x) 向上取整 ceil(x) 四舍五入 round(x) 向0取整 fix(x) 以数轴的思想去思考。正整数时同floor 负整数时同ceil whos列出当前spacework的所有变量 eps函数 默认是1 eps(1)表示离1最近的浮点数值;因为精度只有这么多,算出的结果会去匹配到系统的精度。一般不影响计算结果,除非对数值有非常苛刻的要求。 复数部分: complex(a,b) : 构建复数 a+bi real(z) z的实部;image(z) z的虚部;abs(z) 复数z的模;angle(z) 复数的辐角;conj(z) 复数的共轭复数 无穷量(Inf) 和 非数值量(NaN) Inf -Inf NaN 2.1

2020软件工程作业03

一个人想着一个人 提交于 2020-03-29 16:13:28
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-2017-1/homework/10494 这个作业的目标 c++编写程序实现数独填充 作业正文 如下所示 其他参考文献 www.baidu.com 1.Github地址: https://github.com/hjz563585967/20177708 2.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时) Planning 计划 2 4 Estimate 估计这个任务需要多少时间 48 56 Development 开发 15 20 Analysis 需求分析 (包括学习新技术) 5 5 Design Spec 生成设计文档 3 4 Design Review 设计复审 3 3.5 Coding Standard 代码规范 (为目前的开发制定合适的规范) 2 2 Design 具体设计 10 2 Coding 具体编码 6 6 Code Review 代码复审 3 4 Test 测试(自我测试,修改代码,提交修改 2 3