matlab学习笔记(入门)
MATLAB基础教程笔记
MATLAB7.0基础教程清华大学笔记第一章MATLAB 7.0简介第二章MATLAB 7.0的安装和用户界面1.3.4.命令窗口查询函数查找具体的函数帮助help查找含有该字段的函数帮助lookfor第三章基本使用方法1.续行符…2.常用的操作命令Cd , clc , clear , clf , diary , dir , disp , echo , hold , load , pack , path , quit , save , type3.MATLAB 7.0 的常用常量Ans , beep , pi , eps , inf , nan , nargin , nargout , varagin , varagout , realmin , realmax , bitmax4.常用的函数Exp , log , log10 , fix , floor , ceil , round , rem , mod , sign , pow2 , sqrt , abs5.rem/mod(X,Y)当X,Y符号相同的时候,这两者一样,当符号不相同的时候才有差别,具体表现在rem结果的符号与被除数相同;mod结果的符号与除数相同6.表达式不能与复数I , j直接相连,只有数字能与复数I , j直接相连第四章数值计算功能1.等差向量的生成:(1)冒泡生成法,如:ans=[m:x:n] x代表步长(2) linspace 函数,如:ans=linspace(m,n,y), y代表向量个数,默认为100 2.向量与数的四则运算加法A+b 减法A-b3. 向量求点积:dot (向量维数要一致)向量求叉积:cross (向量维数要为3)向量求混合积:ans=dot(x1,cross(x2,x3)) (dot和cross的顺序不要搞错了)4. 矩阵的除法x=B\A 就是A*x=B的解,但是要求B与A行数一致x=B/A 就是x*A=B的解,但是要求B与A列数一致。
Matlab学习笔记
一、MATLAB 工作窗中的部分通用指令quit 关闭和退出MATLABclc 擦除MATLAB 工作窗中的所有显示内容clf 擦除MA TLAB 的当前图形窗中的图形clear 清除内存中的变量和函数pack 收集内存碎片以扩大内存空间dir 列出指定目录下的文件和子目录清单cd 改变当前工作子目录disp 在运行中显示变量和文字内容type 显示所有指定文件的全部内容echo 控制运行文件指令是否显示的开关hold 控制当前图形窗对象是否被刷新二、语句与变量2.1 Predefined variables系统预定义的变量eps 计算机的最小正数在pc 机上它等于2−52pi 圆周率π的近似值3.14159265358979inf 或Inf 无穷大NaN 不定量i,j 虚数单位定义i = j = −1flops 浮点运算次数用于统计计算量说明1 它们是在MA TLAB 启动时自定义的2.2表达式由下列算符构成并按习惯的优先次序进行运算+ 加法减法* 乘法/ 右除\ 左除^ 乘方设置两种除法是为了方便矩阵的运算对标量而言两者作用相同2.3函数:MA TLAB 的强大功能可函数中略见一斑本质上讲分为三类[1] 内部函数[2] 系统附带各种工具包中的M 文件所提供的大量函数[3] 用户自己增加的函数这一特点是其他许多软件平台无法比拟的2.4显示格式在缺省的状态下MA TLAB 以短格式short 格式显示计算结果可以用MATLAB 命令窗口中format 指令来改变数字的显示格式由于MA TLAB 以双精度执行所有运算显示格式的设置仅影响矩阵的显示不影响矩阵的计算与存储如果矩阵的所有元素都是整数则矩阵以不带小数点的格式显示如果有一个元素不是整数则有几种输出格式默认格式为short 格式只显示5 位有效数字其他的显示格式可显示更多的有效数字还可用科学表示法[例]x=[4/3 1.2345e-6]默认short 格式format short e 短格式科学表示xformat long 长格式xformat long e 长格式科学表示xformat bank 银行格式xformat hex 十六进制格式xformat + +格式用于显示大矩阵的紧凑格式+ 空格分别表示正数负数和零另外还有一种命令为format compact(紧凑格式) 它消去了矩阵之间的间隔行这样可在一屏中显示更多的信息。
MATLAB基础讲课笔记内容
1 概述70年代中期,Cleve Moler和他的同事在美国国家自然科学基金的资助下开发了LINPACK和EISPACK 的Fortran子程序库,这两个程序库是解线性方程和特征值问题的,代表当时矩阵计算软件的最高水平。
70年代末期,Cleve Moler 在新墨西哥大学给学生开线性代数,想让学生使用LINPACK和EISPACK程序库,但他不希望学生在编程上花太多时间,毕竟课程的目的不是学习编程。
因此,他为学生编写了LINPACK和EISPACK的接口程序,这程序取名为MATLAB,即MATrix LABoratory。
又过了几年,Celve Moler 应邀到另一所大学讲学,他把MATLAB带到了这所学校。
在此之后的一两年内,MATLAB开始受到欢迎,并成为应用数学界的术语。
1983年春天,工程师John Little 觉察到MATLAB的潜在应用天地是工程领域,他与Moler、Steve Bangert一起开发了第二代专业版MATLAB,从这开始,MATLAB增加了数据图形功能。
1984年,MathWorks 公司成立,MATLAB正式推向市场。
在此之前,国际上已经有大量的数值计算软件包,它们大多使用Fortran、C编写,它们有共同的缺点:适应面窄、可扩充性差、不开放等等,一个软件包只能解决一个局部问题,很难以推广应用。
MATLAB 的出现打破了这一局面,它的高度适应性、可扩充性等优良特性吸引了很多科学界人士,很多人开始在MATLAB上开发自己的应用工具箱,MATLAB一步步壮大起来。
MATLAB具有良好的可扩展性,MATLAB的函数大多为ASCII文件,可以直接编辑、修改,MATLAB的工具箱可以任意增减,任何人可以自己生成MATLAB工具箱,因此很多研究成果被直接作成MATLAB工具箱发布。
比如在小波变换刚刚出现时,就出现了MATLAB的小波工具箱,到5.0版,小波工具箱成为MATLAB 的标准工具箱。
matlab基础知识全精心整理
x=
-3.4914 1.6863 + 2.6947i 1.6863 - 2.6947i 0.0594 + 0.4251i 0.0594 - 0.4251i
【功能演示-2】求解线性方程组
2x 3y z 2
2.2 命令窗口 (续)
“clc”清除窗口显示内容的命令。
【例2.2-4】计算 y 2sin0.3的值。
1 5
>>y=2*sin(0.3*pi)/(1+sqrt(5))
y= 0.5000
【例2.2-5】计算 y 2cos的0.3值。
1 5
>>y=2*cos(0.3*pi)/(1+sqrt(5))
显示Matlab工作空间中的变量信息
dir
显示当前工作目录的文件和子目录清单
cd
显示或设置当前工作目录
type
显示指定m文件的内容
help或doc
获取在线帮助
quit或exit
关闭/推出MATALB
2.3 工作空间
n 查看工作空间内存变量,可以由who、whos 。 n 命名新变量。 n 修改变量名 n 删除变量 n 绘图 n 保存变量数据 n 装入数据
matlab基础知识全精心整 理
第一讲 Matlab概述
n 前言 n Matlab软件概述 n Matlab的桌面环境及入门知识
n 功能强大
n 数值运算优势 n 符号运算优势(Maple) n 强大的2D、3D数据可视化功能 n 许多具有算法自适应能力的功能函数
n 语言简单、内涵丰富
n 语言及其书写形式非常接近于常规数学书写形式; n 其操作和功能函数指令就是常用的计算机和数学书上的一些简单英
MATLAB基础知识点
MATLAB基础知识点
1.MATLAB的环境与基本操作
2.数据类型与变量
MATLAB支持多种数据类型,包括数字、字符、逻辑、结构体等。
常
见的变量命名规则为字母开头,后面可以是字母、数字和下划线。
可以使
用等号将值赋给变量,使用clear命令清除变量,使用whos命令查看当
前工作区的所有变量。
3.数组与矩阵
MATLAB中的数组是一种基本的数据结构,可以包含数字、字符等元素。
矩阵是一种特殊的数组,它包含了多行和多列。
可以使用方括号创建
数组,使用分号分隔行,使用逗号或空格分隔列。
可以对数组进行元素级
别的运算,如加减乘除。
4.控制结构
MATLAB提供了各种控制结构来实现程序的流程控制,包括if语句、for循环、while循环等。
if语句用于执行条件判断,for循环用于重复
执行一段代码,while循环用于在满足其中一条件时重复执行一段代码。
5.函数与脚本文件
6.图形绘制与可视化
以上是MATLAB的一些基础知识点的简单介绍,可以帮助初学者快速
了解MATLAB的基本用法和特点。
在实际应用中,还需要深入学习和掌握MATLAB的更多功能和高级技巧,以便更好地应用于科学计算和数据处理。
MATLAB官方提供了详细的文档和教程,可以帮助用户深入学习和使用MATLAB。
Matlab学习笔记
第一讲 MATLAB基本知识【↑】可用于调出前一个命令行,【↓】可调出后一个命令行,这样避免了重新输入的麻烦。
当然历史窗口也具有此功能。
MATLAB文件格式有M、Mat、Mex等。
扩展名为“.m”的文件称为M文件(程序文件)。
顾名思义,该文件是解决问题的程序命令集合,工具箱中的函数大部分是M文件。
扩展名为“.mat”的文件称为MAT文件(数据文件),用来保存工作空间的数据变量。
扩展名为“.mex”的文件称为MEX文件(可执行文件),由MATLAB的编译器对M文件进行编译后产生。
表1-2 常见的文件管理命令命令说明what 显示当前目录中的MATLAB文件which文件主名显示指定的M文件的路径type文件主名显示指定的M文件内容save文件名存储定义的变量或演算结果到指定的文件名diary文件名以ASCII码形式记录所有的输入和屏幕上输出的内容cd.. 显示当前工作目录cd 子目录名进入子目录dir 显示当前目录中所有文件mkdir 建子目录Load filename 寻找名称为filename.mat的档案,并以二进制格式载入当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。
基本的搜索过程是:①检查该命令是不是一个变量;②检查该命令是不是一个内部函数;③检查该命令是否当前目录下的M文件;④检查该命令是否是MATLAB搜索路径中其他目录下的M文件。
(意即可直接调用M文件) 变量的命名的规则是:①变量名区分大小写;②变量名以字母开头,可以由字母、数字、下画线组成,但不能使用标点;③变量名长度不超过63位,最多只能含有63个字符,后面的字符无效。
“%”是注释符,“%”后面的内容为注释,对MATLAB的计算不产生任何影响。
MATLAB是基于矩阵运算的,单一的数也是1×1的矩阵。
MATLAB将所有变量均保存为double的形式,在“Command Window”的状态下,所有的变量均存在于工作空间中。
Matlab入门基础(matlab学习笔记)
by Cumber版权归作者所有,未经授权不得转载Matlab 笔记Base(基础)•num2str(x)——数字转为字符串•save('file')——存储数据load('file'))——加载数据<u>输入变量类型为字符串</u>•disp(x)输出,<u>只能输出一个变量</u>,如想输出多个,可使用向量输出。
•who——列出工作区变量whos——列出工作区变量信息•run('file')——运行脚本•datestr(clock)——时间其中,变量clock为当前时间的向量格式,datestr将向量转为字符串格式•solve(func,x)——解方程•syms x1 x2 ........ ——创建符号变量(即未知数)•换行——使用 ... 续接上行内容计时tic toc•取整round——就近取整floor——向下取整ceil——向上取整fix——向0的方向取整•设置输出显示格式(有效数字)format <u>*style*</u>格式long 长十进制小数点格式shortE 短科学记数法longE 长科学记数法hex 十六进制rat 分数数学函数绝对值——abs(x)三角函数——sin、cos、tan、sec、csc、cot反三角函数——asin(x)指数——通常使用 ^ ,特殊e^x——exp(x)开方——可以用 ^1/x ,平方根——sqrt(x)对数——函数log(x) 为lnx 函数log10(x) 为lgx取模——mod(x)标准差——std(x)逻辑符号与或非&&||~Matrix(矩阵)创建•创建向量linspace(x1,x2,n)——x1~x2之间等间距的n个数a:n:b——a,b之间,间隔为n•创建矩阵A = [1,2,3;4,5,6]——使用方括号,逗号或空格分隔元素,分号换行•创建特殊矩阵(x*y矩阵)zeros(x,y) 全0矩阵ones(x,y) 全1矩阵rand(x,y) 0~1的随机数<u>通过加减乘除来改变rand的范围</u>randn(x,y) 正态分布的随机数运算与更改•矩阵的乘法—— * 为矩阵相乘,.*为对应元素相乘•矩阵转置——transpose(A)另一种写法:A'•将矩阵转为列向量——B = A(:)•inv(A)——矩阵求逆A\b 与 inv(A)*b等价•sort(A)——按<u>升序</u>对 A的元素进行排序sort(A,dim)——A 沿维度dim的排序元素[B,Ind] = sort(A)——B为排序后矩阵,Ind为对应索引•矩阵内运算加法 sum(A) ;乘法 prod(A)规则:若A为向量,则为所有元素的运算。
matlab入门基础知识精心整理比较完整
MATLAB基础知识MATLAB的主要功能1.数值计算和符号计算功能例如,求解线性方程组在MATLAB命令窗口输入命令:a=[2,3,-1;3,-5,3;6,3,-8];b=[7;8;9];x=inv(a)*b也可以通过符号计算来解此方程syms x1 x2 x3[x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x3-8,6*x1+3*x2-8*x3-9)2.绘图功能例如,分别绘制函数y=300sinx/x和y=x2的曲线x=-20:0.1:20;plot(x,300*sin(x)./x,':',x,x.^2);3.程序设计语言功能MATLAB是解释性语言,程序执行速度较慢,而且不能脱离MATLAB环境而独立运行。
MathWorks公司提供了将MATLAB源程序编译为独立于MATLAB集成环境运行的EXE文件以及将MATLAB程序转化为C语言程序的编译器。
4.扩展功能MATLAB包含两部分内容:基本部分和各种可选的工具箱。
基本部分构成了MATLAB的核心内容,也是使用和构造工具箱的基础。
工具箱扩展了MATLAB的功能。
功能性工具箱学科性工具箱MATLAB的集成开发环境命令窗口(Command Window)用于输入命令并显示除图形以外的所有执行结果。
一般来说,一个命令行输入一条命令,命令行以回车或分号结束但一个命令行也可以输入若干条命令,各命令之间以逗号或分号隔开如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。
3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。
例如:z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+ …1/(1*2*3*4*5)工作空间(Workspace)是MATLAB用于存储各种变量的内存空间。
当前目录(Current Directory)是指MATLAB运行时的工作目录,只有在当前目录下的文件、函数才可以被运行或调用。
matlab基础知识
matlab基础知识Matlab 基础知识Matlab 是一款功能强大的数学计算和工程仿真软件,在科学研究、工程设计、数据分析等领域有着广泛的应用。
如果你刚刚接触Matlab,那么了解一些基础知识是非常重要的。
首先,让我们来谈谈 Matlab 的工作界面。
当你打开 Matlab 时,会看到一个包含多个窗口的界面。
其中,命令窗口是最常用的部分,你可以在这里直接输入命令并立即得到结果。
此外,还有工作区窗口,用于查看和管理变量;编辑器窗口,用于编写和编辑脚本和函数等。
变量是 Matlab 中非常重要的概念。
变量可以存储各种类型的数据,如数值、字符串、数组等。
在 Matlab 中,变量的命名需要遵循一定的规则,通常以字母开头,可以包含字母、数字和下划线。
例如,`x`、`my_variable` 都是合法的变量名。
数据类型也是需要掌握的基础知识。
Matlab 支持多种数据类型,如整数型(`int8`、`int16`、`int32` 等)、浮点型(`single`、`double`)、字符型和逻辑型等。
不同的数据类型在存储和运算时具有不同的特点和限制。
数组是 Matlab 中处理数据的重要结构。
它可以是一维、二维甚至多维的。
创建数组的方法有很多种,比如直接赋值、使用函数生成等。
例如,`a = 1 2 3 4` 创建了一个一维数组,`b = 1 2; 3 4` 创建了一个二维数组。
矩阵运算在 Matlab 中是非常高效和方便的。
Matlab 提供了丰富的矩阵运算函数,如加法、减法、乘法、求逆等。
例如,`C = A + B`表示矩阵`A` 和`B` 相加,`D = A B` 表示矩阵`A` 和`B` 相乘。
函数是 Matlab 编程的重要组成部分。
你可以自己编写函数来实现特定的功能。
函数的定义通常以`function` 关键字开头,后面跟着函数名、输入参数和输出参数。
例如:```matlabfunction y = my_function(x)y = x^2;end```控制结构也是编程中不可或缺的部分。
matlab学习笔记
>> [i,j,v]=find(A)
i =
1
2
1
2
3
j =
1
1
2
3
3
方法定义B{2}='hello'第二种方法比第一种方法更方便所以更常用。
这样B就有两个元素了,B(1)是{[1;2]},B(2)是{'hello'},
每个元素都是cell型的(注意和B{1}、B{2}的区别,B{1}是[1;2],B{2}是'hello')
cell函数是造元素为cell类型的矩阵
>> A = [1 0 4 -3 0 0 0 8 6];
>> X = find(A)
X =
1 3 4 8 9
find(A>5)返回矩阵A中大于5的元素所在位置
>> find(A>5)
ans =
8 9
[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,列j,和元素的值v(按所在位置先后顺序输出)
plot(x,z,'k-o','linewidth',2,'markersize',4);
legend 实验数据y 实验数据z %%%legend 设置相关线条表示的内容
box off %%%% box off表示去掉坐标框的上线和右线;
legend('boxoff')
ylabel('时间/s','fontname','标楷体','fontweight','bold','fontsize',12); %%ylabel和xlabel分别是设置X轴和Y轴的名称和单位;
学习笔记-MATLAB
学习笔记-MATLAB⼀,基操1,命令窗⼝中的标点符号:空格:⽤于输⼊变量之间的分隔符以及数组⾏元素之间的分隔符。
逗号:⽤于要显⽰计算结果的命令之间的分隔符;⽤于输⼊变量之间的分隔符;⽤于数组⾏元素之间的分隔符。
点号:⽤于数值中的⼩数点。
分号:⽤于不显⽰计算结果命令⾏的结尾;⽤于不显⽰计算结果命令之间的分隔符;⽤于数组元素⾏之间的分隔符。
冒号:⽤于⽣成⼀维数值数组,表⽰⼀维数组的全部元素或多维数组的某⼀维的全部元素。
百分号:⽤于注释的前⾯,在它后⾯的命令不需要执⾏。
单引号:⽤于括住字符串。
圆括号:⽤于引⽤数组元素;⽤于函数输⼊变量列表;⽤于确定算术运算的先后次序。
⽅括号:⽤于构成向量和矩阵;⽤于函数输出列表。
花括号:⽤于构成元胞数组。
下划线:⽤于⼀个变量、函数或⽂件名中的连字符。
续⾏号:⽤于把后⾯的⾏与该⾏连接以构成⼀个较长的命令。
“At”号:⽤于放在函数名前形成函数句柄;⽤于放在⽬录名前形成⽤户对象类⽬录。
+,-,*,/,Λ:算术运算符。
2,数值计算结果的显⽰格式:命令含义范例format short短格式(默认) 3.1416(⼩数点后4位有效)format short e短格式科学格式 3.1416e+000(5位科学计数)format long长格式 3.141592653589793(15位)format long e长格式科学格式 3.141592653589793e+000format rat有理格式355/113format hex⼗六进制格式400921fb54442d18format bank 银⾏格式 3.14(元⾓分格式)3,命令窗⼝的常⽤控制命令:clc: 清屏。
清除命令窗⼝中的所有已显⽰的内容。
clear: 删除内存中的变量。
what:列出当前⽬录下的M、MAT、MEX⽂件清单。
dir:显⽰当前⽬录或指定当前⽬录下的⽂件。
cd 路径:改变或显⽰当前⼯作⽬录;路径可省略,省略时为显⽰当前⼯作⽬录;cd ..表⽰回到上⼀级⽬录。
matlab笔记
一、特殊字符Magic 可以生成每行每列之和相等的魔方矩阵sin 是matlab中正弦函数而Sin和SIN不是在变量中不包含空格、标点,但可以包含下划线,如myvar_gaans 计算结果的默认变量名NaN或nan:非数,0/0eps 浮点相对精度nargin 函数输入的变量数目Inf或inf 无穷大nargout 函数输出的变量数目Pi圆周率realmax 最大正实数abs 给出复数的模angle以弧度为单位给出复数的相位角% 表示注释二、特殊输入方法1、Shift+enter 暂不执行此命令,并且继续写下一条命令,但是如果语句中有for和end 时并不需要。
2、同一行输入多个函数用逗号或者分号将各个函数分开。
3、长命令的分行可以用三个句号(...)作为标示符,如果标示符在两个单引号之间会报错。
三、命令窗口的显示格式1、if、for等关键词采用蓝色字体,字符串采用红色字体,系统默认采用“short”格式显示。
2、Format函数参数Format 短格式shortFormat short 短格式只显示4个有效数字Format log 长格式15位数字格式Format short e 短格式e方式5位科学技术格式Format log e 长格式e方式15位科学技术格式Format short g 短格式g方式从short和shorte中自动选择最佳格式Format log g 长格式g方式从long和longe中自动选择最佳格式Format hex 十六进制格式十六进制Format + +格式用于显示大矩阵,正、负、0飞别用+-空Format bank 银行格式圆角分表示Format rat 有理数格式用近似的有理数表示Format compact 压缩格式在显示变量之间没有空行Format loose 自由格式在显示变量之间有空行3、常用快捷键Home 光标移至行首End 光标移至行尾Esc 清除当前行Del 清除光标所在位置后面的字符Backspace 清除光标所在位置前面的字符Ctrl+c 中断正在执行的命令一、矩阵的创建与组合1、创建简单矩阵Whos命令可以用来查看workspace中所存储的变量信息。
Matlab语言学习知识基础学习知识
一、Matlab的变量与常量Matlab中变量和常量存储都是相应的数据。
数据类型:基本类型、构造类型、符号对象基本类型:数字型、字符串型数字型:整型、浮点型整形:无符号、有符号(int8、int16、int32、int64 1位、2位、4位、8位)浮点型:单精度(32位)、双精度(64位)基本类型:数组类型(常见)、细胞类型、结构类型、类类型符号对象(比较少见)变量:在运算过程中其数值可以改变的量;常量:在运算过程中其数值不改变的量。
变量命名规则:变数名称是由一个字母开头,其后可以有任意数量的字母、数字或下划线。
在变量命名时尽量使用小写字母,名字要有实在的意义,不要和系统保留的关键字(常量)和函数名相同的名字,容易出错。
MATLAB是区分大小写的,变量名可以是任意长度。
Matlab语言是一种弱类型语言,C语言是强类型语言,变量在复制之前要对它的类型进行严格的申明,不同就会出错,而matlab不需要事先申明。
变量初始化:1、采用赋值语句初始化变量;2、用input函数从键盘输入初始化变量,如下:3、matlab已经定义好了的一些常量:I、j虚数;Inf无穷大;NaN不定式;pi圆周率;ans特殊的变量。
二、matlab的基本数据结构标量、向量、数组、矩阵的概念:标量、向量、数组本质上是特殊的矩阵形式;matlab 常用的是二维矩阵;标量1*1的矩阵;向量可以看成是1行或者1列的矩阵;向量是数学中的说法,数组是matlab语言中的说法,但向量和数组在这里指的是同一种数据结构,可以互用。
手动生成矩阵:行矩阵:a = [1 2 3]列矩阵:b = [1 2 3]’或 b = [1;2;3]2*2矩阵:c = [1 2;3 4]使用内置函数生成矩阵:常用的有 o nes,eye,zeros,size,length.利用冒号表达式生成矩阵:冒号:用来生成向量,定义数组下标,数组的循环迭代。
生成航向量:生成列相量:引用矩阵或矩阵中的元素:举证可以看成一个一位数组,按列从左至右,从上往下依次排列。
MATLAB学习笔记
Matlab学习笔记《第一章》矩阵及基本运算1、rand相关rand()随机矩阵,元素在(0,1)之间;randn()正态分布随机矩阵!元素大小是不限制的,方差为1randperm(n) 生成1到n之间n个随机数,相当于对n个数进行一个排列;2、blkdiag(a,b,c...)产生以a,b,c 为对角元素的对角矩阵;3、numel(A)计算矩阵A中元素的个数;4、compan 计算友矩阵,对于计算特征值特征向量很有帮助,eig为计算特征值;5、linspace(a,b ,n)将a,b等分为n等分,如果不输入n将视为默认1006、几个特殊矩阵:全一矩阵ones;单位矩阵eye;全零阵zeros7、logspace(a,b):产生在(10^a,10^b)之间的对数等分向量,同样可以在最后进行限制logspace(a,b,n),eg:logspace(1,2,6)结果为:ans =10.0000 15.8489 25.1189 39.8107 63.0957 100.0000,另外还有一个:y = logspace(a,pi),不太一样:logspace(1,pi,5) :ans =10.0000 7.4866 5.6050 4.1963 3.1416,这个主要应该是由于pi是Matlab内部定义的常数。
8、哈达玛(Hadamard)矩阵是由+1和-1元素构成的正交方阵;9、希尔伯特矩阵Hilbert:hilb(n),其元素为H(i,j)=1/(i+j-1)。
10、Pascal矩阵,magic魔方矩阵,Hankel方阵,托普利兹矩阵toeplitz,Wilkinson 特征值测试阵。
由于自己数学功底不是很强,这些矩阵还不是很理解,以后用到的时候再慢慢了解吧。
11、矩阵的乘法:A*B:两个矩阵相乘;A.*B:矩阵对应元素相乘;dot(A,B):矩阵的点成;cross(A,B):矩阵的叉乘;conv:矩阵的卷积;kron(A,B):矩阵的张量积,这个相当于用A中每个元素乘以矩阵B,所以这个矩阵还是蛮大的。
学习matlab(Matlab基础知识)
第二讲Matlab基础知识1.标识符把标志变量、常量或文件名的特定字符称为标识符,Matlab规定必须是英文字母、阿拉伯数字和下划线等符号组成的字符串,第一个符号必须是英文字母。
2.Matlab中的数据及变量类型有三种类型的基本数据:(1)数值型数据,简称数值(Double Array):一般输入的数字均为数值数据,包含实数、复数。
(2)字符串型数据,简称字符量(Char Array):用英文格式单引号加以界定的数字、字符、各种符号、表达式、方程式和汉字等。
(3)符号型数据,简称符号量(Sym Object):用sym和syms可以把字符、表达式、方程、矩阵等定义成数学符号,称为符号型数据,运算结果为数学表达式。
在命令窗口中键入class(a),回车可知已有变量a是哪一种类型的数据。
3.变量名及赋值(略)2.1 数值矩阵2.1.1 永久性数值变量名除了i、j、pi、eps(浮点运算相对精度10-52)、Inf、NaN外还有,realmin(最小正浮点数2-1022)、realmax(最大正浮点数21023)。
2.1.2 数值矩阵的创建1.直接输入法>>a=[1 6 1;4 6 2;9 3 8];>> b=[2-3i,3+5i,2i;3,9i,6;5-i,7i,4];3.变换矩阵结构的命令flipud(a)——输出矩阵a上下翻转后的矩阵;fliplr(a)——输出矩阵a左右翻转后的矩阵;rot90(a,k)——输出矩阵a沿逆时针旋转k个90度后的矩阵,k为正负整数;rot90(a)——输出矩阵a逆时针旋转90度后的矩阵;reshape(A,m,n)——输出一个m×n=k阶矩阵,它是由矩阵a的k个元素重新排列构成的矩阵,重排前后元素在矩阵中的符号不变。
4.一批特殊向量(行矩阵)的创建(1)等差数列型向量的创建增量输入法:t=a:h:b或t=[a:h:b],>> t=(a:h:b),a、b为起始值,h为公差,可正,可负,省略时为1.例如>> t=0:0.1:2*pi线性等分命令t=linspace(a,b,n),a、b为起始值,n为(b-a)的等分点个数。
matlab学习笔记(一)单元数组
matlab学习笔记(⼀)单元数组1.floor(x) :取最⼩的整数 floor(3.18)=3,floor(3.98)=3ceil(x) :取最⼤的整数 ceil(3.18)=4,ceil(3.18)=42.单元数组和结构体作⽤差不多,相同点:都是存放不同类型的数据,能实现不同类型数据的存储机制。
不同点:结构体数组的各个元素下有成员,并且每个成员有⾃⼰的名字,⽽单元数组没有成员和成员名字的感念。
3.单元数组,⽤[]表⽰元素间隔;⽤,表⽰元素之间的间隔;⽤;表⽰⾏间隔。
例如:c={[1,2],[3,4,5]}是1⾏2列的单元数组c={[1,2];[3,4,5]}是2⾏1列的单元数组创建空单元数组创建m⾏,n列空单元数组⽅法⼀:c=cell(4)或者c=cell(4,4)创建4⾏,4列空单元数组⽅法⼆:c(4,4)={[]}创建4⾏,4列空单元数组创建1⾏,n列空单元数组⽅法⼀:c=cell(1,n)⽅法⼆:c(n)={[]}创建m⾏,n列单元数组并给所有单元赋值c={ 序列/矩阵/字符串/数值; ; ;...;}创建m⾏,n列数组,并给第m⾏,n列的单元赋值,其他单元为空c(m,n)={ 序列/矩阵/字符串/数值}序列或者矩阵⽤[]包含:[1 2 3 4](例外:1:4=[1 2 3 4]⽤冒号表⽰的序列)字符串⽤ ''包含:‘matlab’数值不需要⽤什么包含调⽤第m⾏,n列的单元赋值d=c{m,n}对第m⾏,n列单元赋值c{m,n}=序列/矩阵/字符串/数值注意;对整个单元数组操作是c(m,n),这⾥⽤的是⼩括号();对某个单元操作是c{m,n},这⾥⽤的是⼤括号{} 4.连接矩阵的实现⽅法⽅法⼀:链接操作符:[]⽅法⼆:cat⽅法三:repmat5.矩阵抽取的⽅法a= 1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 20(抽取⼀个元素)抽取第⼀⾏第三列的元素:a(1,3)【或者a(9),matlab默认按列依次存放数据,所以3是放在了第9位】(抽取⼀整⾏)抽取第⼀⾏的所有元素:a(1,:) 【此处⽤了“:”冒号这个通配符当所有列的元素】(抽取⼀整列)抽取第三列的所有元素:a(:,3)(抽取n⾏m列)抽取第⼆⾏和第四⾏,第⼀列和第三列的所有元素:a([2 4],[1 3])6.矩阵的删除删除前提:删除后的还是矩阵或者向量,否则不合法直接置空:[]例:a(1,2)=[]。
MATLAB基础知识
一、1、数学建模基础知识及常用命令一、界面窗口介绍:1 命令窗口(command window),窗口中输入命令,回车实现计算或绘图功能。
2 工作空间窗口(work space)运行matlab命令时所产生的变量都被加入到工作空间,该窗口可以显示命令窗口中已输入的变量的名称,数值等。
3 命令历史窗口(command history)显示所有执行过的命令,选定某个命令时可以双击或按F9执行。
4 当前目录窗口(Current folder)显示当下目录下的文件信息。
二、常用运算1、算术运算符加 + 减 - 乘 * 左除 / 右除 \ 乘方 ^注意:在普通的数值运算中,左除为我们常用的除法形式,左除右除结果比较像逆运算,如1/2 和1\2结果互为倒数,但在矩阵的运算中,结果完全不一样,类似于左乘和右乘结果一般会不一样。
运算的优先级:从左到右,幂运算最高优先级,乘除法具有相同次优先级,加减法具有相同的低优先级,括号可以用来改变优先次序。
大家可以进行几个普通计算(练习10分钟)1、325+47⨯÷ 2、4 59+986-2.7+55-1033.5+20⨯()29()2、数据显示格式默认情况下,matlab显示小数点后4位小数,可以利用format命令改变显示格式(一般写在要改变的数值的命令前):format short 小数点后4位format long 小数点后15位format bank 小数点后2位(以上为三个常用的)format rat 最接近的有理数如以 为例:>> pi= 3.1416>> format long>> pians =3.141592653589793>> format rat>> pians =355/113>> format bank>> pians =3.14>> format short>> pians =3.1416三、matlab变量1、变量赋值形式变量=表达式(数值)或表达式(数值)其中,“=”为赋值符号,将右边表达式的值赋给左边变量(上面左的含义),当不指定输出变量时,matlab将表达式的值赋给临时变量ans(右的含义)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类:double,unit8,unit16,unit32,int8,int16,int32,single,char,logical!Matlab中所有数值计算都可以用double类来进行!,unit8实际中最常用的图像图像类型:亮度图像,二值图像,索引图像,RGB图像亮度图像:是数据矩阵,若是unit8或uint16则是【0,255】或者是【0,65535】,若是double 类,则像素取值是浮点数二值图像只有:0和1的逻辑数组!、简单操作:读图并显示详细情况>> f=imread('E:\image\book.pgm');whosName Size Bytes Class Attributesf 289x338 97682 uint8将图像垂直翻转:>> f=imread('E:\image\book.pgm');fp=f(end:-1:1, : );imshow(fp)将图像上下左右翻转:f=imread('E:\image\book.pgm');fc=f(end:-1:1,end:-1:1);imshow(fc)将图像二次采样并显示详情:>> fs=f(1:2:end,1:2:end);imshow(fs)>> whos fsName Size Bytes Class Attributesfs 145x169 24505 uint8将图像取出一部分:>> fg=f(200:250,200:300);imshow(fg)显示图像中的一条水平扫描线:>> plot(f(200, : )将两幅图像进行相乘:f=imread('c:\image\liangdian.jpg');g=imread('c:\image\shuiguo.jpg');g=g(300:715,500:1149);f=f(1:416,1:650);fd=double(f);gd=double(g);p=fd.*gd;数组乘!pmax=max(p(:));pmin=min(p(:));取最大最小值!pn=mat2gray(p);figure,imshow(pn)亮度变化:函数imadjust是对灰度图像进行亮度变化的基本ipt工具:g=imadjust(f,[low-in high-in],[low-in high-in],gamma)Gamma为1线性映射,大于1,则映射被加权至更低(更暗的)输出值,小于一,加权至更高的输出值明暗反转图像(负片)参数不同:>> f=imread('E:\image\book.pgm');g=imadjust(f, [0 1],[1 0 ]);imshow(g)>> f=imread('E:\image\book.pgm');g=imadjust(f, [0 1],[1 0 ],2);imshow(g)>> f=imread('E:\image\book.pgm');g=imadjust(f, [0 1],[1 0 ],0.5);imshow(g)另外也可以这样:进行明暗反转:g=imcomplement(f);imshow(g)将0.5到0.75之间的灰度级拓展到0-1,可用于突出我们感兴趣的亮度带g2= g2=imadjust(f,[0.5 0.75],[0 1]);imshow(g2)这个类似上面语句,但又更多的灰色调,方法是压缩灰度级的低端并扩展灰度级的高端g3=imadjust(f,[],[],2);imshow(g3)对数和对比度拉伸变换:对数变换通过此式子完成:g=c*log(1+double(f))对8比特而言,最简便:gs=im2uint8(mat2gray(g))使用mat2gray可将值限定在0-1之间,im2uint可将值限定在0-255之间使用对数变化减小动态范围:>> g=im2uint8(mat2gray(log(1+double(f)));imshow(g)图像g与原图像相比,在视觉方面的改善效果是非常明显的函数intrans:建立一个函数intrans,利用对比度拉伸方法得到增强图像然后在主界面输入:f=imread('E:\image\book.pgm');g=intrans(f,'stretch',mean2(im2double(f)),0.9);figure,imshow(g) 函数gscale,亮度标度的函数:g=gscale(f,method,low,high)处理图像时,即管中间没问题,但想利用8比特或者16比特格式包村或查看一副图像时会出现问题,则要将图像调度在全尺度。
将彩色图像变成灰度图像并变小:>> I=imread('d:\image\tupian2.jpg');whos IName Size Bytes Class AttributesI 1000x666x3 1998000 uint8>> I=imread('d:\image\tupian2.jpg');f=rgb2gray(I);s=f(1:2:end,1:2:end);imshow(s)>> whos sName Size Bytes Class Attributess 500x333 166500 uint8生成并绘制图像的直方图:把pgm图像的直方图显示出来:h= imhist(f,b)b适用于形成直方图的收集箱的个数,即灰度级的个数>> f=imread('E:\image\book.pgm');imhist(f)把彩色图片变成灰度图像再进行显示其直方图:>> I=imread('d:\image\tupian2.jpg');f=rgb2gray(I);imhist(s)直方图经常使用条形图来进行显示:Bar(horz,v, width)width为1竖条较明显,为零时是简单的垂直线。
默认为0.8V是一个行向量,它包含将被绘制的点;下面的语句将生成一幅条形图,其水平轴以10个灰度级为一组:>> f=imread('E:\image\book.pgm');h=imhist(f);h1=h(1:10:256);horz=1:10:256;bar(horz,h1)>> axis([0 255 0 1200])>> set(gca,'xtick',0:50:255)>> set(gca,'ytick',0:200:1200)函数axis:axis([xmin xmax ymin ymax]) 用来标注输出的图线的最大值最小值。
其中,[xmin xmax ymin ymax]用来表示需要显示坐标的范围,xmin、xmax、ymin、ymax分别表示X、Y轴坐标最小和最大值。
gca 表示获得当前轴,xtick和ytick按所示的间隔设置水平轴和垂直轴的刻度利用title函数可以给图形加入标题:title(‘titlestring’)‘’内为标题处出现的字符串,把语句加在上面语句之后即可绘制杆状图:>> f=imread('E:\image\book.pgm');>> h1=h(1:10:256);>> horz=1:10:256;>> stem(horz,h1,'fill')>> axis([0 255 0 1200])>> set(gca,'xtick',0:20:255)>> set(gca,'ytick',0:100:1200)绘制plot图形:使用函数plot(horz,v,'color-linestyle-maker')可以自动设定坐标轴的取值范围和刻度线,此时我们使用以下函数:ylim('auto')xlim('auto')直方图均衡化:灰度级均衡化处理的最终结果是一幅扩展了的动态范围的图像,它具有较高的对比度,注意该变换函数只不过是一个累积分布函数使用直方图并调用直方图均衡化技术来处理离散灰度级时,一般说来,处理后的图像的直方图将不再均匀,这源于变量的离散属性。
直方图均衡化使用函数histeq(f,nlev)>> imshow(f);>> figure ,imhist(f);>> ylim('auto')>> g=histeq(f,256);>> figure,imshow(g)>> figure,imhist(g)>>ylim('auto')空间滤波:线性空间滤波(暂缓····)subplot(m,n,p)的意思:plot是图的意思,sub是子的意思。
subplot(m,n,p)生成m*n个子图,当前激活第p个子图。
彩色图像不能直接进行傅立叶变换,图像处理中很多情况下都是把一幅彩色图像分成三个类似灰度图像(一般是red,green,blue)来进行处理的。
至于进行傅立叶变化,可以直接对灰度图像进行二维傅立叶变换fft2,但是结果仍需要处理才能更容易理解和观察。
高斯模糊是低通滤波的一种,也就是滤波函数是高斯函数,由于理想低通滤波会带来振铃现象,所以往往采用巴特尔茨或者高斯函数作为滤波函数。
高斯滤波是指用高斯函数作为滤波函数,至于是不是模糊,要看是高斯低通还是高斯高通,低通就是模糊,高通就是锐化高斯平滑滤波:>> img=imread('e:\image\shuiguo.jpg');f=rgb2gray(img);彩图变成灰度图像subplot(1,2,1);创建子图imshow(f); 并在子图中的一行一列显示灰度图ff=double(f); 把其他类型对象转换为双精度数值f=fft2(f); 二维离散Fourier变换f=fftshift(f); 直流分量对中的谱,,简化频谱的视觉效应,函数fftshift通过交换F 的象限来操作,若a=【 1 2;3 4】则fftshift(a)=【4 3;2 1 】在变化计算后使用fftshift的结果与在计算变换前将输入图像乘以(-1)的x+y次方所得结果是相同的,但不可以互换![m,n]=size(f); size取矩阵的大小d0=80;m1=fix(m/2); fix向零取整n1=fix(n/2); fix向零取整for i=1:mfor j=1:nd=sqrt((i-m1)^2+(j-n1)^2);h(i,j)=exp(-d^2/2/d0^2);endendg=f.*h;g=ifftshift(g);g=ifft2(g);g=mat2gray(real(g)); real表示复数的实部,ifft的输出实际上都会有很小的虚部分量,因此要提取结果的虚部mat2gray实现图像矩阵的归一化操作。