Matlab 学习笔记

合集下载

有关于matlab的学习笔记

有关于matlab的学习笔记
将整数 x 转化为字符串形式
num2str(x)
将带小数点的数转化为一个字符型数组
str2num(x)
将字符串转化为数
7.使用legend(‘string1’,‘string2’,...,pos)
使用函数计的基本的步骤如下:
1,清晰地陈述出你要解决的问题
2.确定程序所需要地输入量和程序所产生的输出量
3.为你的程序设计算法
4.将算法转化为matlab语句
5.调式matlab程序
9.matlab中把0值作为结果FALSE,其他的非0值作为结果ture
10.不等于~=
11.与&,或|,与或xor,~非
4.format long 保留小数点后面的14位
format short保留小数点后面的4位,也是系统默认的格式
5.对于max函数而言
[maxval index]=max([1,5,6,3])
其中的maxval表示的是返回的最大值
index返回的是最大值所对应的位置
6.int2str(x)
1.在matlab中判断是不是空集的方式isempty(集合的名称)
2.数据字典指一组对数据流程图中的数据流、数据文件、数据项及处理逻辑进行定义描述的表格。数据字典是一个自动的或手动的存储数据元的定义和属性的文档
3.变量从键盘中输入,比如说,a=input('please input a:')相当于Java中的system.in

Matlab学习笔记

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学习笔记(入门)

matlab学习笔记(入门)

matlab学习笔记(入门)数据类: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\shui guo.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(i m2double(f)),0.9);figure,imshow(g) 函数gscale,亮度标度的函数:g=gscale(f,method,low,high)处理图像时,即管中间没问题,但想利用8比特或者16比特格式包村或查看一副图像时会出现问题,则要将图像调度在全尺度。

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学习笔记)

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学习笔记

1. 有矩阵A 、矩阵B 和矩阵X 其关系为A*X=B,来求X ,在MA TLAB 中的语句为X=A\B2. 矩阵A 的分析求行列式 det(A) 求行列式的秩 rank(A) 求逆矩阵 inv(A) 求矩阵的转置A ’ 矩阵A 的特征向量和特征值[C,D]=eig(A) C 为特征向量 D 为特征值 3. 矩阵的数组运算元素之间的运算都叫阵列运算1》乘法(1) 矩阵运算A*B 矩阵的数组运算A.*B(元素与元素相乘)例如求y=sin(x^2) x=0:0.5:10,意思是要把x 每个元素平方后在求y 。

如果在MA TLAB 中运行的话会提示出错,因为x 是一个数组,而对数组每个元素进行运算的话要用数字运算,意思是要在想对应的运算符前加一点,写成y=sin(x.^2).4.函数cat 的使用 B=cat(dim,a1,a2…)意义:将多个同维a1,a2…构成一个高维数组B ,dim 是高维数组B 的维数,它必须等于大于a1,a2…的阶次。

5. 多项式以及表达式 假设y=Poly(A) 如果A 二维以上的数组,则y 表示由A 得特征根确定的多项式;如果A 为一维矩阵,则y 表示有A 的元素为多项式的跟确定的多项式。

即令y=0得到的值就是矩阵A 。

例如:A=[1 -2 3]则y=poly(A)=(x-1)(x+2)(x-3)的系数1 -2 -5 6. 4221-=A 二维向量,poly(A)为1 -5 8,即(x-1)(x-4)=-4的系数。

多项式函数的引用:polyval(1) y=polyval(px,x)(2) px 为多项式的系数,x 为多项式自变量取值,y 为对应多项式的函数值多项式的拟合方法:(1) 找出函数上的已知点系列(2) 有已知点系列确定多项式,即p=polyfit(x,y,n)式中,p 为模拟的多项式,x 和y 为已知点系列,n 是多项式的最高阶次。

第四章 符号运算(1) findsym(f,n)用来查找函数y 的变量次序,n 为查找变量的个数。

Matlab基础知识学习笔记

Matlab基础知识学习笔记

Matlab基础知识启动MATLAB计算在输入一行语句后按下【Enter】键,MATLAB会立即执行并显示结果;如果要MATLAB一次执行多行语句,则在输入每行语句后按下【Shit + Enter】键,并在输入最后一行语句后按【Enter】键.内存变量查阅、删除的指令操作(1)查询内存变量在指令窗口(Command Window)中运行who、whos查询MATLAB的内存变量.这两个指令的差别仅在于获取内存变量信息的简单和详细程度不同.(2)删除内存变量clear 删除内存中的所有变量clear V1 V2 Vn 删除内存中的变量V1 V2 Vn(注意:被删除的变量间用”空格”分隔).编辑调试器的开启单击MATLAB桌面的图标,打开空白的M文件编辑器.单击MATLAB桌面上的图标,填写所选文件名后,再单击【打开】按钮,即可展示响应的M文件编辑器.用鼠标左键双击当目录窗口中的所需M文件,即可直接引出响应的M文件编辑器.HELP命令(1)运行help help将得到如何使用help的帮助(2)运行help引出包含一系列主题(topics)分类列表(3)运行help topic引出具体主题下的函数名(Fun Name)列表例如:help elmatElementary matrices and matrix manipulation.Elementary matrices.zeros - Zeros array.ones - Ones array.eye - Identity matrix.…………(4)运行help FunName获得集体函数的用法例如:help eyeEYE Identity matrix.EYE(N) is the N-by-N identity matrix.EYE(M,N) or EYE([M,N]) is an M-by-N matrix with 1's onthe diagonal and zeros elsewhere.…………(5)运行helpbrowser或helpdesk引出“帮助浏览器”.(6)运行指令demo便可以运行演示程序.Matlab简单运算及输入《1》矩阵的输入格式直接输入矩阵时候,矩阵元素用“空格”或者“逗号”隔开,矩阵行用“分号”隔离,整个矩阵放在方括号“[ ]”内.不必事先对矩阵维数做任何说明.例如:A = [1,2,3;4,5,6;7,8,9]或者A = [1 2 3;4 5 6;7 8 9]还可以分行输入:A=[1 2 3;4 5 6;7 8 9]注意:表达符号一定要在英文状态下输入.MATLAB对矩阵大小写是敏感的.如果不用clear指令清楚,或者重新赋值,那么该矩阵就会一直保存在工作空间中,直到指令窗(Command Window)关闭.《2》指令的续行输入MATLAB用3个或3个以上的连续黑点(不是省略号)表示“续行”,即表示下一行是上一行的继续.例如:S = 1 – 1 / 2 + 1/3 -1/4 +…1/5 – 1/6 + 1/7 – 1/8《3》数值、变量和表达式2、变量命名规则 变量命名规则同VC.34、运算符和表达式 ‘/’表示左除,’\’表示右除.对于数而言,左除与右除相同.即a ÷ b 可以写作a/b 或者b\a.表达式由变量名、运算符和函数名组成.符号”%”为注释符,相等于VC 中的”//”. 优先级的规定:指数优先级最高,乘除次之,加减运算级最低.括号可以改变运算顺序.(5)sqrt =,5(5)abs =,5exp(5)e =,51015e =137=.5、复数和复数矩阵 复数z a bi =+,则 real(z) = a ; imag(z) = b ;abs(z) =%给出复数的模angle(z) = arctan(b/a). %以 弧度为单位给出复数z 的相角arctan b aθ= 复数矩阵的格式: A = [1,2;3,4]*i =[I,2i;3i,4i].6.(1)直接计算 a=-8; r=a^(1/3)r= 1.0000 + 1.7321i. (2)显示所有的方根 m=[0,1,2];R= abs(a)^(1/3);Theta = (angle(a) + 2 * pi * m) / 3 ; rrr = R * exp(i * Theta) rrr =1.0000 + 1.7321i -2.0000 + 0.0000i 1.0000 - 1.7321i (3)图形表示t = 0 : pi / 20 : 2 * pi ; x = R * sin(t) ;y = R * cos(t) ;plot(x,y,'b:'),gridhold onplot(rrr(1) , '.' , 'MarkerSize' ,50 ,'color' ,'r')plot(rrr([2,3]) , 'o' , 'MarkerSize' ,15 ,'color' ,'b')axis([-3,3,-3,3]),axis squarehold offMatlab矩阵及其运算引导1、行向量的定义rowvec = [1.2 3 56];2、列向量的定义colvec = [1.2;3;56];3、逐个元素的分配矩阵B(1,1) = 1 ;B(1,2) = 2 ;B(2,1) = 3 ;B(2,2) = 4 ;B =1 23 4注意:矩阵的下标从1开始计数创建新矩阵1、1矩阵、零矩阵和单位矩阵1矩阵的所有元素全为1,零矩阵的所有元素全为零.ones(n) %建立一个n×n的1矩阵ones(m,n,……,p) %建立一个m×n×……×p的1矩阵ones(size(A)) %建立一个和矩阵A同样大小的1矩阵zeros(n) %建立一个n×n的0矩阵zeros(m,n,……,p) %建立一个m×n×……×p的0矩阵zeros(size(A)) %建立一个和矩阵A同样大小的0矩阵eye(n) %建立一个n×n的单位矩阵eye(m,n) %建立一个m×n的单位矩阵eye(size(A)) %建立一个和矩阵A同样大小的单位矩阵例如:输入OneMatrix = ones(2,3,2)则结果为:OneMatrix(:,:,1) =1 1 11 1 1OneMatrix(:,:,2) =1 1 11 1 1注意:eye命令只能用来建立二维矩阵2、随机数和随机矩阵rand %产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值. rand + i*rand %产生一个复数随机数rand(n) %产生一个n×n的矩阵,其元素均为0~1之间均匀分布的随机数.rand(m,n,……,p) %产生一个m×n×……×p的矩阵,其元素均为0~1之间均匀分布的随机数.randn %产生零均值、单位方差的正太分布随机数randn(n) %产生一个n×n的矩阵,其元素均为零均值、单位方差的正太分布随机数.randn(m,n,……,p) %产生一个m×n×……×p的矩阵, 其元素均为零均值、单位方差的正太分布随机数.3、随机数种子rand(‘state’) %返回一个有35个元素的向量,其中包含随机发生器的当前状态.rand(‘state’,s) %设置随机种子发生器的状态为srand(‘state’,0) %设置随机种子发生器为它的原始状态rand(‘state’,j) %设置随机种子发生器为它的第j种子状态,j为整数rand('state',sum(100*clock)); %使用clock命令,使得随机种子发生器在每个不同的时刻都设置为不同的状态.rand(‘state’,arg) %使用MATLAB中的随机种子发生器.randn(‘state’,) %返回一个有两个元素的向量,其中包含正态随机种子发生器的状态randn(‘state’,arg) %根据arg设置正态随机种子发生器,见rand.例如astate = rand('state'); astate(1:5)ans =0.86510.51210.90210.81860.6267说明:astate(1:5)表示列出状态向量(35个元素)中的前5个元素的值4、从已存在的向量中产生新的矩阵(一)diag(A) %生成一个由矩阵A主对角线元素组成的列向量,主对角线总是从矩阵左上角开始,对于方阵来说它结束于矩阵的右下角.diag(x) %x为一个n维向量.生成一个n维方阵,它的主对角线元素取自向量x,其余元素的值都为零.diag(A,k) %生成一个由矩阵A第k条对角线元素组成的列向量。

Matlab学习笔记

Matlab学习笔记

zeros功能是返回一个m×n×p×...的double类零矩阵。

注意:m, n, p,...必须是非负整数,负整数将被当做0看待。

当没有参数时classname时,产生的是标量零矩阵,有参数时产生指定类型的零矩阵,例如zeros(3,2,'uint8')。

Ones返回一Rand1.rand(n)表示产生一个n×n的随机矩阵,n必须是整数,否则会报错。

2.rand(m,n)或rand([m n])产生m×n均匀分布的随机矩阵,元素取值在0.0~1.0。

3.X=rand(1,10);产生10个0~1的随机数。

4.Y = rand(size(A))产生一个与A同样大小的数组。

5.产生介于a到b之间的伪随机数。

6.rand('state',0)表示恢复到最初产生随机数的状态。

7.rand('state',sum(100*clock))定义随时间变化的初值。

% 投掷硬币实验x = rand(1,50000);% 50000次sum =0;k1 =0;a = zeros(1,50000);b = zeros(1,50000);for(i =1:50000)sum = sum +1;if x(i)>0.5k1 = k1 +1;enda(i)= k1;b(i)= sum;endf1 = a ./ b;figure(1)plot(b, f1), title('出现正面的频率变化曲线')figure(2)plot(b,1-f1), title('出现反面的频率变化曲线')Strcat将数组 s1,s2,...,sN 水平地连接成单个字符串,并保存于变量combinedStr中。

如果任一参数是元胞数组,那么结果combinedStr 是一个元胞数组,否则,combinedStr是一个字符数组。

matlab学习笔记

matlab学习笔记
>> A=[3 2 0; -5 0 7; 0 0 1];
>> [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

学习笔记-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学习笔记

matlab学习笔记

命令1 interp1功能一维数据插值(表格查找)。

该命令对数据点之间计算内插值。

它找出一元函数f(x)在中间点的数值。

其中函数f(x)由所给数据决定。

x:原始数据点Y:原始数据点xi:插值点Yi:插值点格式(1)yi = interp1(x,Y,xi)返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y 的内插值决定。

参量x 指定数据Y 的点。

若Y 为一矩阵,则按Y 的每列计算。

yi 是阶数为length(xi)*size(Y,2)的输出矩阵。

(2)yi = interp1(Y,xi)假定x=1:N,其中N 为向量Y 的长度,或者为矩阵Y 的行数。

(3)yi = interp1(x,Y,xi,method)用指定的算法计算插值:’nearest’:最近邻点插值,直接完成计算;’linear’:线性插值(缺省方式),直接完成计算;’spline’:三次样条函数插值。

对于该方法,命令interp1 调用函数spline、ppval、mkpp、umkpp。

这些命令生成一系列用于分段多项式操作的函数。

命令spline 用它们执行三次样条函数插值;’pchip’:分段三次Hermite 插值。

对于该方法,命令interp1 调用函数pchip,用于对向量x 与y 执行分段三次内插值。

该方法保留单调性与数据的外形;’cubic’:与’pchip’操作相同;’v5cubic’:在MATLAB 5.0 中的三次插值。

对于超出x 范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。

对其他的方法,interp1 将对超出的分量执行外插值算法。

(4)yi = interp1(x,Y,xi,method,'extrap')对于超出x 范围的xi 中的分量将执行特殊的外插值法extrap。

(5)yi = interp1(x,Y,xi,method,extrapval)确定超出x 范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。

Matlab学习笔记(全)

Matlab学习笔记(全)

Matlab学习笔记——《MATLAB与科学计算》王正盛国防工业出版社一.MATLAB入门 (4)who、whos和永久变量 (4)显示格式 (4)图形 (4)二.MATLAB数值计算 (5)1.常用命令: (5)2.矩阵的保存和获取 (5)3.矩阵的运算和数组的运算 (5)4.线性方程组 (5)5.多项式 (6)6.数值积分 (6)7.一般非线性方程组求解 (6)8.微分方程的数值求解 (7)三.MATLAB的符号计算 (7)1.符号变量和符号表达式 (7)2.微积分运算 (7)3.解方程 (8)4.化简和代换 (8)的符号表达式命令 (8)四.MATLAB的图形和可视化 (9)1.二维图形 (9)2图形标记 (9)3.特殊坐标和图形 (9)4.其他命令 (9)5.填充命令 (10)6.三维图形 (10)7.符号绘图 (10)8.其他 (10)五.MATLAB程序设计 (10)1.概述: (10)2.命令文件 (11)3.程序文件 (11)六.MATLAB图形用户界面(GUI)设计 (11)七.基于MATLAB的大规模矩阵计算 (11)1.稀疏矩阵 (11)八.基于MATLAB的最优化问题求解 (12)1.线性规划问题 (12)2.非线性问题 (12)3.二次规划问题 (12)九.基于MATLAB的数据插值和拟合 (12)1.一维数据插值 (12)2.二维数据插值 (13)3.曲线拟合 (13)十.基于MATLAB的图像处理初步 (13)1.图像分类 (13)2.图像的读取和显示 (13)一.MATLAB入门who、whos和永久变量who 变量名 %检查内存变量。

Whos %检查驻留变量的详细情况。

MATLAB自定义的永久变量:eps %计算机中的最小正数 inf %无穷大pi %圆周率 NaN %不定量flops %浮点运算次数 i,j%虚数单位显示格式MATLAB中以短格式(5个有效数字)显示计算结果,可以用format命令改变数字显示格式1.变量的存储和调用1)存储当前工作空间中的变量Save %将所有的变量存入文件中Save mydate %将所有变量存入指定文件Save mydate x y z %将指定的变量存入指定的文件中2)将数据文件的变量载入当前的工作空间将save换作load即可图形1.二维图形绘制命令Plot(x,y);2.三维图形绘制命令Mesh(z);2.用户目录的建立在命令窗口输入:cd c:\mydir二.MATLAB数值计算1.常用命令:Reshape命令X=1:1:6; %产生6个元素的行向量Reshape(x,2,3); %利用X行向量产生一个2*3的向量diag命令:ar=rand(4,4) %产生一个4*4的0-1均匀随机向量d=diag(ar) %用ar的主对角元形成向量dD=diag(d)%利用d构成对角矩阵DSize:获取矩阵的行数和列数2.矩阵的保存和获取1)利用m文件利用文件编辑器编辑矩阵AM=[1 2 3;4 5 6;7 8 9]——》保存为在自己的目录下名的——》在MATLAB命令窗口中只要输入matrix就可以调用AM矩阵2)通过mat文件Mat文件是MATLAB中保存数据的一种标准格式二进制文件,通过save和load执行,如前所述3)利用外部数据文件装入到指定矩阵中假如磁盘中已有名为c:\mydir\的二进制数据文件,利用load c:\mydir\命令可以在MATLAB工作空间中产生一个名为date的矩阵3.矩阵的运算和数组的运算矩阵运算是按矩阵的运算法则进行的;数组运算无论何种操作都是对元素逐个进行的,数组运算需要在运算符前加点号。

matlab学习笔记

matlab学习笔记

1、在matlab中,数值计算和符号计算的根本区别在于:数值计算中不允许未定义的变量,
而符号计算允许。

2、矩阵是matlab的基本运算单元,该单元是定义在复数域上的;系统会根据用户的输入自
动设置,运算期间会自动地调整矩阵的维数,所以matlab事先不会定义矩阵的维数。

3、矩阵每行的元素都必须用空格或者逗号分开;在矩阵中,采用分号或者回车表明每一行
的结束;整个矩阵必须包含在方括号中。

4、矩阵中的元素可以是数字或者表达式,但表达式不可以包含未知变量。

5、矩阵中的元素可以用它的行列数表示,例如A(2,3)表示的是矩阵A的第2行第3列
的元素;格式n:s:m表示产生从n到m步长为s的一系列值,当s为默认时,步长为1,步长可以是正数、负数和小数。

6、矩阵中的元素也可以是复数,并且可以用一个矩阵表示复数的实部、用另一个矩阵表示
复数的虚部,进行相加减。

7、子矩阵的表示方法:A(v,w),v和w可以是任何排列的向量;v,w中任一个可以是冒号
“:”,它表示全部行(在v的位置)或者全部列(在w的位置)。

8、。

MATLAB教程/学习笔记

MATLAB教程/学习笔记

MATLAB学习笔记一.基本概念(变量、脚本与操作)(可查文件getting started with matlab)1.1.help (+function name)可以了解某函数的用法,doc(+function name)了解某函数的详细资料。

1.2.脚本1.2.1.就是逐行运行的命令,用Matlab编辑器编写,保存为Matlab文件(.m后缀)点击新建-脚本,创建新文件,或者在命令行窗口中输入edit xxx.m1.2.2. %后面跟的是注释。

运算符:Operators and special characters.Arithmetic operators.plus - Plus +uplus - Unary plus +minus - Minus -uminus - Unary minus -mtimes - Matrix multiply *times - Array multiply .*mpower - Matrix power ^power - Array power .^mldivide - Backslash or left matrix divide \mrdivide - Slash or right matrix divide /ldivide - Left array divide .\rdivide - Right array divide ./idivide - Integer division with rounding option.kron - Kronecker tensor productRelational operators.eq - Equal ==ne - Not equal ~=lt - Less than <gt - Greater than >le - Less than or equal <=ge - Greater than or equal >=Logical operators.relop - Short-circuit logical AND &&relop - Short-circuit logical OR ||and - Element-wise logical AND &or - Element-wise logical OR |not - Logical NOT ~punct - Ignore function argument or output ~xor - Logical EXCLUSIVE ORany - True if any element of vector is nonzeroall - True if all elements of vector are nonzeroSpecial characters.colon - Colon :paren - Parentheses and subscripting ( )paren - Brackets [ ]paren - Braces and subscripting { }punct - Function handle creation @punct - Decimal point .punct - Structure field access .punct - Parent directory ..punct - Continuation ...punct - Separator ,punct - Semicolon ;punct - Comment %punct - Invoke operating system command !punct - Assignment =punct - Quote 'transpose - Transpose .'ctranspose - Complex conjugate transpose 'horzcat - Horizontal concatenation [,]vertcat - Vertical concatenation [;]subsasgn - Subscripted assignment ( ),{ },.subsref - Subscripted reference ( ),{ },.subsindex - Subscript indexmetaclass -Metaclass for MATLAB class ?1.2.3.在某一个脚本里创建并修改过的变量将存储在工作区里。

matlab 学习笔记

matlab 学习笔记

(1)开运算先腐蚀后膨胀的过程称为开运算。

用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。

开运算函数:imopen(I,SE)(2)闭运算先膨胀后腐蚀的过程称为闭运算。

用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。

闭运算函数:imclose(I,SE)bwmorph(I,’open’/’close’)(3)腐蚀操作会去掉物体的边缘点,细小物体所有的点都会被认为是边缘点,因此会整个被删去。

再做膨胀时,留下来的大物体会变回原来的大小,而被删除的小物体则永远消失了。

腐蚀函数:imerode(I,SE)(4)膨胀操作会使物体的边界向外扩张,如果物体内部存在小空洞的话,经过膨胀操作这些洞将被补上,因而不再是边界了。

再进行腐蚀操作时,外部边界将变回原来的样子,而这些内部空洞则永远消失了。

膨胀函数:imdilate(I,SE)(5)结构元素SE的构建函数:strelSE=strel(shape,parameters);其中shape的种类有:'arbitrary'、'pair'、'periodicline'、'diamond'、'disk'、'rectangle'、'line'、'square'、'octagon'、'ball',分别是:对、周期线、钻石体、圆盘、矩形、直线、正方形、八角形、椭球体。

参数parameters 一般控制se的大小。

(6)加载文件当前路径下(mat和m文件在一起): load ***.mat;在下一级路径下: load .\下一级路径的文件名\***.mat;在上一级路径下: load ..\***.mat;在平行文件夹内 : load ..\平行的文件夹\***.mat;上两级的可以这样load ..\..\文件夹\***.mat;(7)matlab中save,load使用方法功能描述】存储文件【软件界面】MATLAB->File->Save Workspace As将变量存入硬盘中指定路径。

matlab学习笔记

matlab学习笔记

17、在画图像时标注 title 是时如果要画出特殊的符号,注意要用‘\_____’来表示。详解P116.
18、关于文件路径的设置问题,进入 file---set path... 点击你的 mfile 文件的保存路径,点击保存即可。
19、注意legend() 的使用时,如果是先画的哪个,就应该把这个写在前面!
>> a=[1 2 3 4;5 6 7 8]
a =
1 2 3 4
5 6 7 8
>> b=[1 2 3;4 5 6]
b =
1 2 3
4 5 6
>> save madata
语句后面注意不要加上分号?
22、 LOGLOG Log-log scale plot.
LOGLOG(...) is the same as PLOT(...), except logarithmic(对数)
scales(缩放) are used for both the X- and Y- axes.
3 a(1,3)
6 a(2,3)
9 a(3,3)
比如a(5)表示的是5这个数字,a(2)表示的是4这个数字。
29、注意在调用disp()函数的时候如果显示的是字符的数组的话,用下面这种格式:
disp([''_''_'']) (空格隔开) 。 可以在.M文件中的代码可以写command window中的指令,比如加上一句clc。
7 if A is a directory
9、当函数含有多个返回值的时候可以设置一个与其个数相同的矩阵来接受这个函数的返回值比如如果function_comp4()含有4个返回值,可以用[a b c d]=function_comp4()接受函数的返回值。如果要看到自己写的函数的帮助的文档,需要把这个函数的M文件添加到当前的路径当中。

matlab学习笔记

matlab学习笔记

MATLAB学习笔记目录1、续行 (1)2、逻辑运算符及特殊运算符和关系符 (1)3、MATLAB常用函数表 (1)4、椭圆方程图像的画法 (3)5、数值显示格式的控制命令 (3)6、MATLAB常用标点的功能 (3)7、标准数组生成函数 (4)8、反向y(x)轴 (4)9、MATLAB复杂公式转化为数学代数公式的方法 (4)1、续行MATLAB用≥3个连续的点“.”表示“续行”,即表示下一行是上一行的继续。

2、逻辑运算符及特殊运算符和关系符&:与;|:或;~:非;xor:异或。

.*:数组乘;.\或./:数组左乘或右乘;.^:数组幂;==:等于;~=:不等于3、MATLAB常用函数表4、椭圆方程图像的画法1)theta=0:pi/120:2*pi;2)整理成角度的参数方程:x=a*cos(theta)+x0;y=b*sin(theta)+y0;其中x0,y0,是椭圆的中心。

a,b是长短轴的长。

然后plot(x,y),就可以了。

5、数值显示格式的控制命令6、MATLAB常用标点的功能7、标准数组生成函数8、反向y(x)轴9、MATLAB复杂公式转化为数学代数公式的方法利用MA TLAB函数latex()将公式转化为latex文本,然后将latex文本复制到MathType 等数学公式处理软件下即可。

如:syms x y zz=x^2+y^2+x*y-4*x^3*y^6;latex(z) ans =- 4\, x^3\, y^6 + x^2 + x\, y + y^2最后将- 4\, x^3\, y^6 + x^2 + x\, y + y^2复制到MathType 下即可得:36224x y x xy y -+++。

Matlab软件个人学习笔记精品

Matlab软件个人学习笔记精品

MATLAB软件学习笔记By John.Lee or emc1207第一部分MA TLAB软件入门基础1.1 MATLAB软件介绍在欧美各高等学校,MA TLAB软件成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等诸多课程的基本教学工具,成为本科生、硕士生和博士生的必须掌握的基本技能。

主要用途:(1)数值和符号计算;(2)绘图;(3)一种语言体系,也可以方便地与Fortran、C等语言接口。

(4)工具箱(Toolbox),分为功能性和学科性两种类。

同时,其工具箱的数据文件代码完全开发,用户也可以开发自己的工具箱。

功能性工具箱主要用来扩充MA TLAB软件的符号计算功能、图视建模仿真功能、文字处理功能以及硬件实时交互功能。

这种功能性工具箱用于多种学科。

而学科性工具箱是专业性比较强的,如控制工具箱(Control Toolbox)、信号处理工具箱(Signal Processing Toolbox)、通信工具箱(Communication Toolbox)等都属此类。

MA TLAB语言的主要特点:(1)语法规则简单。

与其他编程语言相比更接近于常规数学表达,对于数组变量的使用,不需类型声明,也无需事先申请内存空间。

(2)提供了数以千计的计算函数,极大的提高了用户的编程效率。

(3)是一种脚本式(scripted)的解释型语言,无论是命令、函数或变量,只要在命令窗口的提示符下键入并以回车键结束,则MA TLAB都会予以解释执行。

(4)可移植性,可跨平台运行。

MA TLAB软件可以运行在很多不同的计算机系统平台上,包括大部分的UNIX和Linux系统,其编写的程序对应的数据文件是一致的,绘图功能也与平台无关。

1.2 MATLAB系统环境与数据操作1.2.1 系统路径设置两个路径概念:(1)当前目录窗口:指MA TLAB运行时的工作目录。

只有在当前目录和搜索路径下的文件、函数才可以被运行和调用;如果没有特殊指明,数据文件也将存放在当前目录下。

MATLAB学习笔记整理

MATLAB学习笔记整理

MATLAB笔记摘录:1、clc 命令清空命令窗口(The Command Windows)中的内容,可以用clf 清空当前图象窗口中的内容。

在工作空间窗口(The workspace browser)中变量可用clear命令清除。

2、能用diary 命令记录下在MATLAB 中运行过程中每个线程所做的事。

3、常见编程错误如果变量名与MATLAB 中的函数或命令重名,那么这个函数或命令将不能被访问。

4、常见编程错误不要创建和MATLAB 内建函数或命令同名的M 文件。

5、—which 命令,它能帮助我们找到正在执行的文件版本和它的路径。

6、命令窗口是最重要的窗口,因为所有的命令都得在此键入,所有的结果在此输出7、MATLAB 的变量名必须以字母开头,后面可以跟字母,数字和下划线(_).只有前31 个字符是有效的;如果超过了31 个字符,基余的字符将被忽略。

如果声明两个变量,两变量名只有第32 个字符不同,那么MATLAB 将它们当作同一变量对待8、像MATLAB 这样的叫做弱类型语言。

通过简单的赋值形式就可以创建变量,变量类型取决于创建时的类型。

9、。

有三种方式初始化MATLAB 中的变量:1.用赋值语句初始化变量2.用input 函数从键盘输入初始化变量3.从文件读取一个数据10、克隆运算符指定一系列的数值,它指定了这个系列数的第一值,步增和后一个值。

它的一般顺序始下first:incr:last11、捷径表达式可以联合转置运算符(’)来初始化行向量,或更加复杂的矩阵12、函数zeros 可以初始化任何大小的全为零的数组。

相似地,ones 函数产生的数组包含的元素全为1,eye 函数通常用来产生单位矩阵,只有对角线的元素为1.其他元素为0. 13、input 函数中有字符's'做为它的第二个参数,输入的数据就被当字符串. in2=input('enter data:','s') enter data:123 把字符串1.23 存储到in2 中.14、.数组,矩阵,向量有什么区别?答:矩阵是二维数组,向量是一维数组,矩阵和向量是数据的子集。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab 学习笔记
—线性规划问题(三)
在经济建设中,经常碰到大宗物资调运问题。

如煤、钢铁、木材、粮食等物资,在全国有若干生产基地,根据已有的交通网,应如何制订调运方案,将这些物资运到各消费地点,而总运费要最小。

这问题可用以下数学语言描述。

已知有m 个生产地点i A ,m i ,,2,1⋅⋅⋅=。

可供应某种物资,其供应量(产量)分别为i a ,m i ,,2,1⋅⋅⋅=,有n 个销地j B ,
n
j ,,2,1⋅⋅⋅=,其需要量分别为j b ,
n j ,,2,1⋅⋅⋅=,从
i A 到j B 运输单位物资的运价(单价)为ij c ,这些数据可汇总于
产销平衡表和单位运价表中,见表3-1,表3-2。

有时可把这两表合二为一。

表3-1 表3-2
销地
产地 1 2 … n
产量
1 2 m
销量
……

1
b 2b n b 1a 2a m
a
若用ij x 表示从i A 到j B 的运量,那么在产销平衡的条件下,要求得总运费最小的调运方案,可求解以下数学模型
⎪⎪⎪⎩

⎪⎪⎨⎧≥⋅⋅⋅==⋅⋅⋅===∑∑∑∑====0,,2,1,,,2,1,1
1ij n j i ij m
i j ij m
1i n
1j ij
ij x m i a x n j b x x c z m in ·········· (1-1) 这就是运输问题的数学模型。

它包含n m ⨯个变量,)(n m +个约束方程。


销地 产地 1 2 … n
1 2 … m
11c 12c … n c 1 21c 22c … n c 2
1m c 2m c … mn c
系数矩阵的结构比较松散,且特殊。

该系数矩阵中对应于变量ij x 的系数向量ij P ,其分量中除第i 个和第j m +个为1以外,其余的都为零。


j m i T
ij e e P ++=⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅=)01010( ······· (1-2)
对产销平衡的运输问题,由于有以下关系式存在:
∑∑∑∑∑∑=======⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛=m
i i n j m i ij n
j m
i n j ij j a x x b 1
11111 ······ (1-3)
所以模型最多只有1-+n m 个独立约束方程。

即系数矩阵的秩1-+≤n m 。

由于有以上特征,所以求解运输问题时,可用比较简便的计算方法,习惯上称为表上作业法。

求解这一类运输问题的简单方法为表上作业法。

表上作业法是单纯形法的一种简化方法。

但具体计算和术语有所不同。

可归纳为:
(1)找出初始基可行解。

即在)(n m ⨯产销平衡表上给出1-+n m 个数字格。

(2)求各非基变量的检验数,即在表上计算空格的检验数,判断是否达到最优解。

如已是最优解,则停止计算,否则转到下一步。

(3)确定换入变量和换出变量,找出新的基可行解。

在表上用闭回路法调整。

(4)重复(2),(3)直到得到最优解为止。

以上运算都可以在表上完成,下面通过例子说明表上作业法的计算步骤。

eg1:某公司经销甲产品。

它下设三个加工厂。

每日的产量分别是:1A 为7吨,2A 为4吨,3A 为9吨。

该公司把这些产品分别运往四个销售点。

各销售点每日销量为:1B 为3吨,2B 为6吨,3B 为5吨,4B 为6吨。

已知从各工厂到各销售点的单位产品的运价为表3-3所示。

问该公司应如何调运产品,在满足各销点的需要量的前提下,使总运费为最少。

解 先画出这问题的产销平衡表和单位运价表,见表3-3,表3-4。

表3-3 单位运价表
销地 加工厂
1B 2B 3B 4B 1A 3 11 3 10 2A
1 9
2 8 3A 7
4
10
5
表3-4 产销平衡表
销地 加工厂
1B 2B 3B 4B 产量 1A 7 2A
4 3A 9 销量
3
6
5
6
用最小元素法给出的初始解是运输问题的基可行解,其理由为:
(1)用最小元素法给出的初始解,是从单位运价表中逐次地挑选最小元素,并比较产量和销量。

当产大于销,划去该元素所在列。

当产小于销,划去该元素所在行。

然后在未划去的元素中再找最小元素,再确定供应关系。

这样在产销平衡表上每填入一个数字,在运价表上就划去一行或一列。

表中共有m 行n 列,总共可划)(m n +条直线。

但当表中只剩一个元素时,这时当在产销平衡表上填这个数字时,而在运价表上同时划去一行和一列。

此时把单价表上所有元素都划去了,相应地在产销平衡表上填了)1(-+n m 个数字。

即给出了)1(-+n m 个基变量的值。

(2)这)1(-+n m 个基变量对应的系数列向量是线性独立的。

运用表上作业法求解的结果如下表 销地 加工厂
1B 2B 3B 4B 产量 1A 5 2 7 2A
3 1
4 3A 6 3 9 销量
3
6
5
6
最小总运费为86。

相关文档
最新文档