matlab ij 表达,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;

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 n p...])

Y = rand(size(A))

rand

s = rand('state')

描述

rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。

Y = rand(n) 返回一个n x n的随机矩阵。如果n不是数量,则返回错误信息。

Y = rand(m,n) 或 Y = rand([m n]) 返回一个m x n的随机矩阵。

Y = rand(m,n,p,...) 或 Y = rand([m n p...]) 产生随机数组。

Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。

1,rand(3)*-2 rand(3)是一个3*3的随机矩阵(数值范围在0~1之间)

然后就是每个数乘上-2

2 ,用matlab随机产生60个1到365之间的正数 1+fix(365*rand(1,60));

3,用rand函数随机取100个从-1到1的数x1,x2,...,x = rand(1,100) * 2 - 1

10、函数unidrnd简介

函数功能: 产生一组离散均匀随机数。

语法格式:

R = unidrnd(N)

产生从1到N所指定的最大数数之间的离散均匀随机数。其中N可以是一个向量、矩阵、多维数组(当然也可以是一个数,即1乘以1的矩阵),但N中所有元素都必须是正整数。这种调用方式将产生一个和N具有相同尺寸(行、列、维数)的矩阵R。

R = unidrnd(N,v)

这种调用格式中v是一个行向量,如果v是一个1乘以2的向量, 则v中的两个元素分别指定了生成的矩阵R的行数(由v(1)指定)和列数(由v(2)指定)。如果v是一个1乘以n的矩阵, 则R是一个n维数组。

R = unidrnd(N,m,n)

这里m和n分别指定生成的矩阵R的行数和列数。

程序示例

>> a = unidrnd(1)

a = 1

>> a = unidrnd(2)

a = 1

>> a = unidrnd(2)

a = 2

>> a = unidrnd(0)

a = NaN

>> a = unidrnd([1 2 3; 4 5 0])

a =

1 2 2

2 3 NaN

>> a = unidrnd(100, 2, 3)

a =

11 99 19

65 11 1

11、ceil的作用是向正方向舍入;ceil是向离它最近的大整数圆整如a = [-1.9, -0.2, 3.4, 5.6, 7, 2.4+3.6i]圆整后:a=[-1,0,4, 6, 7  ,3+4i]

还有三个函数fix floor round

其作用分别是向零舍入、朝负方向舍入、round是四舍五入函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值