matlabij表达,Matlab⼀些语⾔的介绍
⊙在matlab中clear,clc,clf,hold作⽤介绍
clear是清变量,
clc只清屏,
clf清除图形窗⼝上的旧图形,
hold on是为了显⽰多幅图像时,防⽌新的窗⼝替代旧的窗⼝。
①format:设置输出格式
对浮点性变量,缺省为format short.
format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进⾏,⽽不论变量是如何显⽰的。对整型变量采⽤整型数据。整型变量总是根据不同的类(class)以合适的数据位显⽰,例如,3位数字显⽰显⽰int8范围 -128:127。
format short, long不影响整型变量的显⽰。
format long 显⽰15位双精度,7为单精度(scaled fixed point)
format short 显⽰5位(scaled fixed point format with 5 digits)
format short eng ⾄少5位加3位指数
format long eng 16位加⾄少3位指数
format hex ⼗六进制
format bank 2个⼗进制位
format + 正、负或零
format rat 有理数近似
format short 缺省显⽰
format long g 对双精度,显⽰15位定点或浮点格式,对单精度,显⽰7位定点或浮点格式。
format short g 5位定点或浮点格式
format short e 5位浮点格式
format long e 双精度为15位浮点格式,单精度为7为浮点格式
②plot函数
基本形式
>> y=[0 0.58 0.70 0.95 0.83 0.25];
>> plot(y)
⽣成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。
>> x=linspace(0,2*pi,30); % ⽣成⼀组线性等距的数值
>> y=sin(x);
>> plot(x,y)
⽣成的图形是上30个点连成的光滑的正弦曲线。
多重线
在同⼀个画⾯上可以画许多条曲线,只需多给出⼏个数组,例如
>> x=0:pi/15:2*pi;
>> y=sin(x);
>> w=cos(x);
>> plot(x,y,x,w)
则可以画出多重线。另⼀种画法是利⽤hold命令。在已经画好的图形上,若设置hold on,MATLAB将把新的plot命令产⽣的图形画在原来的图形上。⽽命令hold off 将结束这个过程。例如:
>> x=linspace(0,2*pi,30); y=sin(x); plot(x,y)
>> hold on
>> z=cos(x); plot(x,z)
>> hold off
线型和颜⾊
MATLAB对曲线的线型和颜⾊有许多选择,标注的⽅法是在每⼀对数组后加⼀个字符串参数,说明如下:
线型 线⽅式: - 实线 :点线 -. 虚点线 - - 波折线。
线型 点⽅式: . 圆点 +加号 * 星号 x x形 o ⼩圆
颜⾊: y黄; r红; g绿; b蓝; w⽩; k⿊; m紫; c青.
以下⾯的例⼦说明⽤法:plot(x,y,线形,颜⾊,线条宽度),
>>x=0:pi/15:2*pi;
>> y1=sin(x); y2=cos(x);
>> plot(x,y1,’b:+’,x,y2,’g-.*’)
⽹格和标记
在⼀个图形上可以加⽹格、标题、x轴标记、y轴标记,⽤下列命令完成这些⼯作。
>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
>> plot(x,y,x,z)
>> grid
>> xlabel(‘Independent Variable X’)
>> ylabel(‘Dependent Variables Y and Z’)
>> title(‘Sine and Cosine Curves’)
也可以在图形的任何位置加上⼀个字符串,如⽤:
>> text(2.5,0.7,’sinx’)
表⽰在坐标x=2.5, y=0.7处加上字符串sinx。更⽅便的是⽤⿏标来确定字符串的位置,⽅法是输⼊命令:
>> gtext(‘sinx’)
在图形窗⼝⼗字线的交点是字符串的位置,⽤⿏标点⼀下就可以将字符串放在那⾥。
坐标系的控制
在缺省情况下MATLAB⾃动选择图形的横、纵坐标的⽐例,如果你对这个⽐例不满意,可以⽤axis命令控制,常⽤的有:
axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最⼤值、最⼩值
axis equal 或 axis(‘equal’) x轴和y轴的单位长度相同
axis square 或 axis(‘square’) 图框呈⽅形
axis off 或 axis(‘off’) 清除坐标刻度
还有axis auto axis image axis xy axis ij axis normal axis on axis(axis)⽤法可参考在线帮助系统。
多幅图形可以在同⼀个画⾯上建⽴⼏个坐标系, ⽤subplot(m,n,p)命令;把⼀个画⾯分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画⼀个图,如
>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
>> u=2*sin(x).*cos(x); v=sin(x)./cos(x);
>> subplot(2,2,1),plot(x,y),axis([0 2*pi –1 1]),title(‘sin(x)’)
>> subplot(2,2,2),plot(x,z),axis([0 2*pi –1 1]),title(‘cos(x)’)
>> subplot(2,2,3),plot(x,u),axis([0 2*pi –1 1]),title(‘2sin(x)cos(x)’)
>> subplot(2,2,4),plot(x,v),axis([0 2*pi –20 20]),title(‘sin(x)/cos(x)’)
图形的输出
在数学建模中,往往需要将产⽣的图形输出到Word⽂档中。通常可采⽤下述⽅法:⾸先,在MATLAB图形窗⼝中选择【File】菜单中的【Export】选项,将打开形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。然后,再打开相应的⽂档,并在该⽂档中选择【插⼊】菜单中的【图⽚】选项插⼊相应的图⽚即可。
③zeros 和 ones 这两个函数是怎么⽤的
ones产⽣全1数组,zeros产⽣全零数组。
ones(a,b)产⽣a⾏b列全1数组
ones(a)产⽣a⾏a列全1叔祖
例如:
ones(1,3)产⽣1⾏3列全1数组[11 1]
ones(2)产⽣ 1 1
1 1
zeros⽤法同ones,只是产⽣的是全0数组
④MATLAB中的length函数
在MATLAB中:
size:获取数组的⾏数和列数
length:数组长度(即⾏数或列数中的较⼤值)
numel:元素总数。
s=size(A),当只有⼀个输出参数时,返回⼀个⾏向量,该⾏向量的第⼀个元素时数组的⾏数,第⼆个元素是数组的列数。
[r,c]=size(A),当有两个输出参数时,size函数将数组的⾏数返回到第⼀个输出变量,将数组的列数返回到第⼆个输出变量。
如果在size函数的输⼊参数中再添加⼀项,并⽤1或2为该项赋值,则size将返回数组的⾏数或列数。其中r=size(A,1)该语句返回的时数组A的⾏数, c=size(A,2) 该语句返回的时数组A的列数。
n=numel(A)该语句返回数组中元素的总数。
n=length(A):如果A为⾮空数组,返回⾏数和列数两者之间数值较⼤的那⼀个值,即相当于执⾏了max(size(A));如果A为空数组,则返回0;如果A是⼀个向量则返回A的长度。n=max(size(A):若A为⾮空数组,返回A的最⼤维数;若A为空数组,返回A中最长的⾮0维数。
⑤【matlab】spline和ppval的意义
x=[0.1 0.05 0.02 0.01 0.005 0.001];
y=[100 94.68 72.10 41.82 27.13 11.69];
x1=log10(x);
y1=y;
figure,plot(x1,y1,'o')
xx=-3.0 : 0.04 : -1;
linspace函数调用的格式为pp=spline(x1,y1);
y2=ppval(pp,xx)
figure,plot(xx,y2,'o')
xx=-3.0 : 0.04 : -1;%表⽰xx从-3.0开始每隔0.04取值到-1为⽌(即xx=[-3.0,-2.96,-2.92……,-0.96,-1])
pp=spline(x1,y1);%表⽰样条插值
y2=ppval(pp,xx)%插值曲线上,xx所对应的yy
可以把最后两句写成yy=spline(x1,y1,xx);
最后画出曲线plot(xx,yy,'-')就是等效于plot(xx,y2,'-')
⑥⽤法:linspace(x1,x2,N)
linspace是Matlab中的⼀个指令,⽤于产⽣x1,x2之间的N点⾏⽮量。其中x1、x2、N分别为起始值、终⽌值、元素个数。若缺省N,默认点数为100。
相关函数:logspace ⽤法:x=logspace(a,b, n)
功能:logspace(a,b, n)⽣成⼀个(1xn)数组,数据的第⼀个元素值为10^a,最后⼀个元素为10^b,n是总采样点数。需要注意的是,此时产⽣的数组元素在10^a 到10^b上并不是均匀分布的,⽽形成⼀个对数曲线。
7matlab interp1⾥⾯的spline做三次样条插值
三次样条插值直接⽤spline函数做。
边界条件加在y的⾸尾,第⼀个表⽰y'(x0),最后⼀个表⽰y'(xt)。
如果不加边界条件,默认是not-a-knot边界条件(注意不是⾃然边界条件)
⾃然边界条件的插值要⽤csape函数才能得到。
如果⽤interp1,则只能使⽤spline函数的默认边界条件,即not-a-knot条件。
x=0:3:9;
y=x.*cos(x); % .* 向量乘
xx=linspace(0,9);
plot(x,y,'o');%样本点
hold on;
plot(xx,interp1(x,y,xx,'spline'),'r');%interp1只能使⽤默认边界条件
plot(xx,spline(x,[0 y 0],xx),'r:');%spline可以使⽤第⼀类边界条件,这⾥y'(0)=y'(9)=0 pp=csape(x,y,'second');
plot(xx,fnval(pp,xx))%第⼆类边界条件要⽤csape做,这⾥⾃然边界条件
legend%('样本点','默认边界条件','⼀阶导为0','⾃然边界条件','location','south')
8
randi是matlab中能产⽣均匀分布的伪随机整数的新函数。
⽤法有:
randi(imax)
r = randi(imax,n)
randi(imax,m,n)
randi(imax,[m,n])
randi(imax,m,n,p,...)
randi(imax,[m,n,p,...])
randi(imax,size(A))
r = randi([imin,imax],...)
r = randi(..., classname)
例如:
randi([0 1],1,10)
⽣成1*10的0、1随机的矩阵:
ans =
1 1 1 0 0 1 0 1 0 0
9
rand函数(⽤于产⽣随机数)
均匀分布的随机数或矩阵
语法
Y = rand(n)
Y = rand(m,n)
Y = rand([m n])
Y = rand(m,n,p,...)
Y = rand([m ])
Y = rand(size(A))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论