matlab函数

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分别组成一组向量对,每一组向量对的长度可以不同

MATLAB之基本语法与基础函数

匿名 (未验证) 提交于 2019-12-03 00:03:02
常用命令 dir:列出当前目录下的所有文件 clc:清除命令窗 who:将内存中的当前变量以简单形式列出 变量设置 (1). 变量命名 (2). 变量赋值 >>a=(100*0.02)/4.0 a=0.0500 数值通常按行输入,行之间用分号隔开。 B= 35642 整数操作 随机序列常用命令 例1.3:产生一个 2*3 随机矩阵,MATLAB 命令为:R=randsrc(2,3) 矩阵常用操作命令 数是学好 MATLAB 的关键。 (1).矩阵的输入 (2).操作符“:”的说明 j:k表示步长为 1 的等差数列构成的数组:[j, j+1, j+2,…, k]。 j:i:k表示步长为 i 的等差数列构成的数组:[j,j+i,j+2*i,…, k]。 A(i:j)表示 A(i),A(i+1),…,A(j)。 (3).对矩阵元素的操作 设 A 是一个矩阵,则在 MATLAB 中用如下符号表示它的元素: A(i,j)表示矩阵 A 的第 i 行第 j 列元素。 A(:,j)表示矩阵 A 的第 j 列。 A(i,:)表示矩阵 A 的第 i 行。 A(:,:)表示 A 的所有元素构造 2 维矩阵 A(:)表示以矩阵 A 的所有元素按列构成的一个列矩阵。 A(i)表示矩阵 A(:)的第 i 个元素。 []表示空矩阵。 (4).矩阵的运算 (5).数组 在 MATLAB 中数组是一行或者一列的矩阵

【算法】模拟退火算法解决TSP问题的matlab实现

匿名 (未验证) 提交于 2019-12-02 23:59:01
前言 模拟退火算法(SA)是较为常见的现代优化算法之一,常用于旅行商(TSP)问题中。数学建模里学生们常常使用该算法,甚至是为了使用这个算法而使用这个算法,让评委老师们审美疲劳。评委老师明确表明使用所谓"神算法"(神经网络,模拟退火,遗传算法等等)而过于牵强者拿不了高分(见: http://special.univs.cn/service/jianmo/sxjmyw/2018/1128/1187951_15.shtml )。希望大家不要觉得它名词高级就认为它能吸引评委眼睛,评委毕竟是教授,不可能被几个名词唬住。 但是呢,我们是学生,不能因为它不能随便用就不学习它,而在编程的环节中,我们亦有收获,况且爱因斯坦也是从一加一开始学起的,所以模拟退火算法还是有学习的必要的。话说的有点多,下面进入主题。 算法框架 模拟退火算法可以粗分为以下几个步骤:   1,初始温度的设置、初始解的生成、设置每个温度下产生解的个数。   2,产生新解。   3,计算代价函数差。   4,Metropolis判别。(别被名词吓住,形式上是很简单的一个原则)   5,降温。   6,判断温度是否小于一个给定量。是,则结束;否,则跳转到第2步。 以下对每个步骤做详细的解释。 初始温度的设置、初始解的生成、设置每个温度下产生解的个数:    初始温度与降温系数、终止温度息息相关,它们仨决定了迭代的次数,具体公式为

利用matlab自带函数graycoprops 实现基于共生矩阵的遥感图像纹理特征分析

匿名 (未验证) 提交于 2019-12-02 23:56:01
close all;clear all;clc; I = imread('yaogan2.jpg'); HSV = rgb2hsv(I); Hgray = rgb2gray(HSV); % 计算64位灰度共生矩阵 glcmsl = graycomatrix(Hgray,'numlevels',64,'offset',[0 1;-1 1;-1 0;-1 -1]); % 纹理特征统计,包括对比度、相关性、熵、平稳度、二阶矩(能量) stats = graycoprops(glcmsl,{'contrast','correlation','energy','homogeneity'}); ga1 = glcmsl(:,:,1); %0° ga2 = glcmsl(:,:,2); %45° ga3 = glcmsl(:,:,3); %90° ga4 = glcmsl(:,:,4); %135° energya1 = 0;energya2=0;energya3=0;energya4=0; for i=1:64 for j=1:64 energya1=energya1+sum(ga1(i,j)^2); energya2=energya2+sum(ga2(i,j)^2); energya3=energya3+sum(ga3(i,j)^2); energya4=energya4+sum(ga4(i

MATLAB的输入与输出函数

匿名 (未验证) 提交于 2019-12-02 23:56:01
标题 输入:input() 1. 输入单个数值 2. 输入字符串 3. 输入以空格隔开的一行数值 4. 输入以空格与换行符隔开的多行数值 输出 1. disp() (1)输出单个数值 (2)输出一维数组 (3)输出矩阵 (4)输出字符串 2. fprintf() (1)输出格式化的单个数值 (2)输出格式化的一维数组 (3)输出格式化的矩阵 (4)输出格式化的字符串 由于 MATLAB不使用 stdin 和 stdout,而是使用command window进行交互。因此不需要使用 scanf 和 printf 等 C/C++ 函数来提示用户进行输入。但在某些情况下需要提示用户进行输入并打印相关结果时,可使用如下函数。 输入:input() MATLAB中使用input()函数获取用户输入。 1. 输入单个数值 a = input ( '' ); %不含提示的单个数值输入 a = input ( 'Please input a number:' ); %含提示的单个数值输入 2. 输入字符串 a = input ( '' , 's' ); %不含提示的字符串输入 a = input ( 'Please input a string:' , 's' ); %含提示的字符串输入 3. 输入以空格隔开的一行数值 a = input ( '' , 's' ); %以字符串读入 a =

matlab基础知识

匿名 (未验证) 提交于 2019-12-02 23:55:01
1.ceil(x):向上取整 floor(x):向下取整 2.round(x,y):保留小数点后y位 3.sign(x):判断正负,若为正,则为1;若为负,则为-1;若为0,则为0 4.conj(x):取x的共轭 abs(x):取模 real(x):取x的实部 imag(x):取x的虚部 angle(x):求复数矩阵相位角的弧度值 5.flipu(x):矩阵的第一行与最后一行进行互换 flipdim(x,dim):dim为1,表示每一列进行逆序排列;dim为2,表示每一行进行逆序排列 fliplr(x):实现矩阵沿垂直轴左右翻转 6.mean(x):mean函数是一个求数组平均值的函数 mean(x,dim):dim为1,求每一列的平均值;dim为2,求每一行的平均值 7.length(x):length(x)为数列的长度,即它里面有多少个元素.如果x0是矩阵的话,比方说M行N列,那么length返回M和N这两个数的最大值 8.[b0,ind]=sort(x):按列将矩阵排序,然后找出他们的位置 [b0,ind]=sort(x,2):按行将矩阵排序,然后找出他们的位置 9.dot(a,b):向量的点乘,ps:只能用于向量,不可以用于矩阵 cross(a,b):向量的×乘 10.[m,n]=size(a):求矩阵的行列,行为m,列为n 11.可以用;或者回车换行输入命令 12

quiver()函数

匿名 (未验证) 提交于 2019-12-02 23:49:02
1. 一般用于绘制二维矢量场图,函数调用方法如下: 1 quiver (x,y,u,v)    该函数展示了点(x,y)对应的的矢量(u,v)。 其中,x的长度要求等于u、v的列数,y的长度要求等于u、v的行数。在绘制图像的过程中, 下面举几个例子: 例1:一个最简单的例子,该二维矢量场图中的矢量皆从(0,0)出发,分别指向(1,0) 、(-1,0) 、(0,1) 、(0,-1)。 1 2 3 4 5 x=[0 0 0 0]; y=x; u=[1 -1 0 0]; v=[0 0 1 -1]; quiver (x,y,u,v)    画出下图   但我们发现箭头并没有完全指到(1,0) 、(-1,0) 、(0,1) 、(0,-1) 。如果需要箭头完全指到(1,0) 、(-1,0) 、(0,1) 、(0,-1),我们需要改变scale参数,将其设为1。参考方法如下: 1 quiver (x,y,u,v,1)   画出图像如下 : 当然,也可以改变颜色。改变颜色可以参考 LineSpec的设置 ,参考代码如下: 1 quiver (x,y,u,v, '-r' %这里将图像设置为红色   画出图像如下: 例2:(参考 MathWorks ):已知 u = y c o s x v = y s i n x v=ysinx 1 2 3 4 cos (x).*y; sin (x).*y;

小小知识点(二十)利用MATLAB计算定积分

匿名 (未验证) 提交于 2019-12-02 23:39:01
一重定积分 1. Z = trapz(X,Y,dim) 梯形数值积分,通过已知参数x,y按dim维使用梯形公式进行积分 %举例说明 1clc clear all % int ( sin ( x ), 0 , pi ) x = 0 : pi / 100 : pi ; %积分区间 y = sin ( x ); %被积函数 z = trapz ( x , y ) %计算方式一 z = pi / 100 * trapz ( y ) %计算方式二 运行结果 被积函数曲线 2、[q,fcnt]= quad(fun,a,b,tol,trace,p1,p2...) 自适应simpson公式数值积分,适用于精度要求低,积分限[a,b]必须是有限的,被积函数平滑性较差的数值积分. [q,fcnt] = quadl(fun,a,b,tol,trace,p1,p2...) 自适应龙贝格数值积分,适用于精度要求高,积分限[a,b]必须是有限的,被积函数曲线比较平滑的数值积分 %举例说明 2 % 被积函数 1 /( x ^ 3 - 2 * x - p ),其中参数 p = 5 ,积分区间为[ 0 , 2 ] clc clear all F = @( x , n ) 1. /( x .^ 3 - 2 * x - n ); %被积函数 Q1 = quad (@( x ) F ( x , 5 ), 0 , 2 )

Matlab结构化程式与自定义函数(一)

匿名 (未验证) 提交于 2019-12-02 23:35:02
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41621665/article/details/89815505 1.第一个程序 新建: for i=1:10 end 运行方法:F5 或者去编辑器找运行 这个时候会弹出保存文件的窗口 ,保存就ok 两个%%,就成了“块”,对于调试很有用(注意一定要和x之间有一个空格噢!) 方法: 点击选中的节,使之变为黄色的块,点击编辑器里面的运行节即可。 整个界面的debug: 点击左侧小横线,应该开始是灰色,然后点击运行,就会变成红色加一个绿色的箭头,此时鼠标放到某些变量上会有数值变化。此时的命令行窗口会变为k>>,退出debug后,变回f(x)>>,同时在工作区也能看变量的信息。 文章来源: https://blog.csdn.net/qq_41621665/article/details/89815505