matlab矩阵

matlab关于矩阵的操作

北慕城南 提交于 2019-12-03 09:59:02
一.矩阵表示 例如,A = [1,2,3;3,4,5].其中,矩阵的元素可以是数值、变量、表达式或者函数。 二.矩阵的创建 特殊矩阵的创建:a. ones(): ones(n)表示生成一个n*n的全1矩阵、ones(m,n)生成m*n的全1矩阵          b.zeros(): 类似ones()函数,其生成全0矩阵          c.rand(): 产生在(0,1)间均匀分布的矩阵          d. randn() : 产生均值为0,方差为1的标准正态分布随机矩阵          e.eye() :产生单位阵 三.矩阵的获取 1.获取元素:一种是直接元素下标索引,列如:Matrix(i,j);一种是元素序号索引,列如:Matrix(m)。其中,m = (j-1)*M+i,也就是一列一列的来,像Z型循环。 2.矩阵截取:(1) A( :,j )表示取A矩阵的第j列全部元素; A(i,:) 表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 (2) A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。 四.矩阵运算 1. ’(转置):对实数矩阵进行行列互换,对复数矩阵,共轭转置,特殊的,操作符

matlab学习笔记13_1 函数返回值

陌路散爱 提交于 2019-12-03 09:47:39
一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~ Follow Me 参考文献 https://blog.csdn.net/qq_36556893/article/details/79323389#commentBox https://blog.csdn.net/qq_36556893/article/details/79326325 函数返回一个值 返回值不必使用return语句,而是直接将需要返回的变量或矩阵写在function后面 function 返回值/返回矩阵=该函数文件名(参数1,参数2,参数3...参数n) function x=init_x(x,m,n) for i=1:m for j=1:n x(i,j)=randsample(20,1); end end 此示例表示通过参数传入x,m,n的值,然后返回改变之后的x 示例 现在需要将xx矩阵元素完全赋值给一个新矩阵yy,即复制,具体代码如下: 主函数 execute_1.m clc clear %定义xx,yy矩阵大小 m=3; n=1; xx=zeros(m,n); yy=zeros(m,n); %初始化xx xx=init_x(xx,m,n); %将xx矩阵赋值给yy yy=function_1(xx,yy,m,n 初始化xx的函数 init_x

matlab中fft快速傅里叶变换

核能气质少年 提交于 2019-12-03 02:36:01
视频来源: https://www.bilibili.com/video/av51932171?t=628 。 博文来源:https://ww2.mathworks.cn/help/matlab/ref/fft.html?searchHighlight=fft&s_tid=doc_srchtitle 视频来源很好的解释了: 1 .傅里叶变换过程,经过傅里叶变化得到了,频率w,振幅a0,相位角φ; 2. 傅里叶变换 主要应用领域: 声音, 图像处理; 博文则很好的解释了: 1. 傅里叶变换在matlab软件中怎样应用 2.. 傅里叶变换的作用效果的展示,从时域到频域的变化,时域难以解决的问题到频域中却很清晰。 语法 Y = fft(X) Y = fft(X,n) Y = fft(X,n,dim) 说明 示例 Y = fft( X ) 用快速傅里叶变换 ( FFT) 算法计算 X 的 离散傅里叶变换 (DFT)。 如果 X 是向量,则 fft(X) 返回该向量的傅里叶变换。 如果 X 是矩阵,则 fft(X) 将 X 的各列视为向量,并返回每列的傅里叶变换。 如果 X 是一个多维数组,则 fft(X) 将沿大小不等于 1 的第一个数组维度的值视为向量,并返回每个向量的傅里叶变换。 示例 Y = fft( X , n ) 返回 n 点 DFT。如果未指定任何值,则 Y 的大小与 X 相同

浅谈均值、方差、标准差、协方差的概念及意义

匿名 (未验证) 提交于 2019-12-03 00:34:01
统计学里最基本的概念就是样本的均值、方差、标准差。首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述: 均值: 标准差: 方差: 均值描述的是样本集合的中间点,它告诉我们的信息是有限的,而标准差给我们描述的是样本集合的各个样本点到均值的距离之平均。 以这两个集合为例,[0, 8, 12, 20]和[8, 9, 11, 12],两个集合的均值都是10,但显然两个集合的差别是很大的,计算两者的标准差,前者是8.3后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是n,是因为这样能使我们以较小的样本集更好地逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。 标准差和方差一般是用来描述一维数据的,但现实生活中我们常常会遇到含有多维数据的数据集,最简单的是大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子的欢迎程度是否存在一些联系。协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义: 来度量各个维度偏离其均值的程度,协方差可以这样来定义: 协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义)

向量与矩阵范数

匿名 (未验证) 提交于 2019-12-03 00:34:01
在刚入门机器学习中的低秩,稀疏模型时,被各种范数搅得一团糟,严重延缓了学习进度,经过一段时间的学习,现在将其完整的总结一下,希望遇到同样麻烦的同学能有所帮助。。。 首先定义一个向量为:a=[-5,6,8, -10] 向量的1范数即:向量的各个元素的绝对值之和,上述向量a的1范数结果就是:29,MATLAB代码实现为:norm(a,1); 向量的2范数即:向量的每个元素的平方和再开平方根,上述a的2范数结果就是:15,MATLAB代码实现为:norm(a,2); 1.向量的负无穷范数即:向量的所有元素的绝对值中最小的:上述向量a的负无穷范数结果就是:5,MATLAB代码实现为:norm(a,-inf); 2..向量的正无穷范数即:向量的所有元素的绝对值中最大的:上述向量a的负无穷范数结果就是:10,MATLAB代码实现为:norm(a,inf); 首先我们将介绍数学中矩阵的范数的情况,也就是无论哪个学科都统一的一种规定。。。 例如矩阵A = [ -1 2 -3; 4 -6 6] 矩阵的1范数即:矩阵的每一列上的元素绝对值先求和,再从中取个最大的,(列和最大),上述矩阵A的1范数先得到[5,8,9],再取最大的最终结果就是:9,MATLAB代码实现为:norm(A,1); 矩阵的2范数即:矩阵 ATA” role=”presentation” style=”position:

Matlab数据导入、导出

匿名 (未验证) 提交于 2019-12-03 00:29:01
在MATLAB中导入数据意味着从外部文件加载数据。importdata函数允许加载不同格式的各种数据文件。它有以下五种形式 - 序号 函数 描述 1 A = importdata(filename) 从文件 filename 中将数据加载到数组A中。 2 A = importdata('-pastespecial') 从系统剪贴板而不是从文件加载数据。 3 A = importdata(___, delimiterIn) 解析 delimiterIn 作为在 ASCII 文件,文件名或剪贴板数据中的列分隔符。可以使用 delimiterIn 与上述语法中的任何输入参数。 4 A = importdata(___, delimiterIn, headerlinesIn) 从ASCII文件,文件名或剪贴板加载数据,从行头标题 In + 1 开始读取数字数据。 5 [A, delimiterOut, headerlinesOut] = importdata(___) 返回在 delimiterOut 中检测到的输入ASCII文件的分隔符字符,并使用前面语法中的任何输入参数检测 headerlinesOut 中检测到的标题行数。 MATLAB中的数据导出(或输出)可以理解为写入文件。 MATLAB允许在其他应用程序中使用读取ASCII文件的数据。 为此,MATLAB提供了几个数据导出选项。

MATLAB find函数用法

匿名 (未验证) 提交于 2019-12-03 00:29:01
1, X = [1 0 4 -3 0 0 0 8 6]; ind = find(X) ind = 1 3 4 8 9 返回的是向量X中的非零元素 索引值 2, X = [1 0 4 -3 0 0 0 8 6]; ind = find(X>2) ind = 3 8 9 返回向量中满足大于2的元素的 索引值 3,当X是个矩阵时, X = [3 2 0; -5 0 7; 0 0 1]; [r,c,v] = find(X>2) r = 1 2 c = 1 3 v = 1 1 r表示行,c表示列,v为1表示为真。此处表示第一行第一列和第二行第三列符合要求(>2); 文章来源: MATLAB find函数用法

MATLAB中prod函数使用

匿名 (未验证) 提交于 2019-12-03 00:22:01
B = prod(A) 将A矩阵不同维的元素的乘积返回到矩阵B。 若 如果A是向量,prod(A)返回A向量的乘积。 如果A是矩阵,prod(A)将A看作列向量,返回每一列元素的乘积并组成一个行向量B。 如果A是多维数组,prod(A)沿着第一个非单例作为向量,返回一个行向量数组。 《Simulink与信号处理》 B = prod(A,dim) 沿着指定的dim标量的维计算A矩阵的乘积。注:dim=2表示沿行计算。 注明:该例子来自Mathworks公司英文帮助文件。 已知矩阵A: 《Simulink与信号处理》 M = magic(3) M = 例一:计算矩阵A的每一列元素的乘积 prod(M) = 《Simulink与信号处理》 例二:计算矩阵A每一行元素的乘积, dim=2表示按行计算 prod(M,2) = 文章来源: MATLAB中prod函数使用

matlab 高级绘图函数

匿名 (未验证) 提交于 2019-12-03 00:18:01
(1)当x和y是同维矩阵时,配对的x、y按对应列元素为横、 纵坐标分别绘制曲线, 曲线条数等于矩阵的列数 。例如, 在同一坐标中绘制3条幅值不同的正弦曲线,命令为 : x= 0 :pi/ 10 : 2 *pi; y=sin(x); plot([x;x;x] ',[y;y*2;y*3]' ) (2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根 曲线, 曲线条数等于y矩阵的另一维数 ,x被作为这些曲线 共同的横坐标。例如,在同一坐标中绘制3条幅值不同的 正弦曲线,命令也可以写成: x = 0 :pi/ 10 : 2 *pi ; y = sin ( x ); plot( x ,[ y ; y *2 ; y *3 ]) (3)当plot函数只有一个输入参数时,即plot(y) 时: 若y是实型向量,则以该向量元素的下标为横坐标、元素值为纵坐标画出一条连续曲线; 若y是复数向量,则分别以向量元素实部和虚部为横、纵坐标绘制一条曲线。 若y是实矩阵,则按列绘制每列元素值相对其下标的曲线, 曲线条数等于输入参数矩阵的列数 ; 若y是复数矩阵,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。 (4)当plot函数有多个输入参数,且都为向量时,即 plot(x1,y1,x2,y2,…,xn,yn) 其中,x1和y1,x2和y2,……,xn和yn分别组成一组向量对,每一组向量对的长度可以不同

OpenCV计算矩阵元素的和

匿名 (未验证) 提交于 2019-12-03 00:15:02
有时我们需要计算矩阵中所有元素的和,在 MATLAB 中我们经常会使用下列的格式来计算矩阵的和: sum ( sum ( A ) ) ; % matlab中的 或者 sum ( A ( : ) ) ; % matlab中的 在 OpenCV 中,用sum求和的格式有所不同: C ++ : Scalar sum ( InputArray src ) 参数说明: arr - 输入矩阵必须有1到4个通道。 如果,你输入的是单通道的图像,你需要这要书写得到单通道所有像素的和: double s = cv :: sum(A)[0] 来源:51CTO 作者: 进击的Explorer 链接:https://blog.csdn.net/jpc20144055069/article/details/102737399