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运行时的工作目录,只有在当前目录下的文件、函数才可以被运行或调用。
- 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实现图像矩阵的归一化操作。