搜档网
当前位置:搜档网 › fopen,fprintf 和 sprintf在Matlab中的应用

fopen,fprintf 和 sprintf在Matlab中的应用

fopen,fprintf 和 sprintf在Matlab中的应用
fopen,fprintf 和 sprintf在Matlab中的应用

fopen,fprintf 和sprintf在Matlab中的应用

matlab中fopen函数在指定文件打开的实例如下:

*1)“fopen”打开文件,赋予文件代号。

语法1:FID= FOPEN(filename,permission)

用指定的方式打开文件

FID=+N(N是正整数):表示文件打开成功,文件代号是N.

FID=-1 : 表示文件打开不成功。

FID在此次文件关闭前总是有效的。

如果以读方式打开,matlab首先搜索工作目录,其次搜索matlab的其他目录,“permission”是打开方式参数。

打开方式参数由以下字符串确定:

r 读出

w 写入(文件若不存在,自动创建)

a 后续写入(文件若不存在,自动创建)

r+ 读出和写入(文件应已存在)

w+ 重新刷新写入,(文件若不存在,自动创建)

a+ 后续写入(文件若不存在,自动创建))

w 重新写入,但不自动刷新

a 后续写入,但不自动刷新

文件的存储格式:文件打开的默认方式是:二进制。以文本方式打开,可以在方式参

数“permission”中加入“t”文件将,如“rt”,“wt+”

matlab中fprintf函数的具体使用方法实例如下:

fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:

数据的格式化输出:fprintf(fid, format, variables)

按指定的格式将变量的值输出到屏幕或指定文件

fid为文件句柄,若缺省,则输出到屏幕

1 for standard output (the screen) or

2 for standard error. If FID is omitted, output goes to the screen.

format用来指定数据输出时采用的格式

%d 整数

%e 实数:科学计算法形式

%f 实数:小数形式

%g 由系统自动选取上述两种格式之一

%s 输出字符串

fprintf(fid,format,A)

说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。

例6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。

>> a='string';

>> fid=fopen('d:\char1.txt','w');

>> fprintf(fid,'%s',a);

>> fclose(fid);

>> fid1=fopen('d:\char1.txt','rt');

>> b=fscanf(fid1,'%s')

b =

string

matlab读txt文件

fid=fopen('fx.txt','r');

%得到文件号

[f,count]=fscanf(fid,'%f %f',[12,90]);

%把文件号1的数据读到f中。其中f是[12 90]的矩阵

%这里'%f %f'表示读取数据的形势,他是按原始数据型读出

fclose(fid);

%关闭文件

另外有的txt文件还可以用load来打开

其语句为

f=load('fx.txt)

matlab中sprintf和fprintf函数的对比实例如下:

字符串转换

abs

字符串到ASCII转换

dec2hex

十进制数到十六进制字符串转换

fprintf

把格式化的文本写到文件中或显示屏上

hex2dec

十六进制字符串转换成十进制数

hex2num

十六进制字符串转换成IEEE浮点数

int2str

整数转换成字符串

lower

字符串转换成小写

num2str

数字转换成字符串

setstr

ASCII转换成字符串

sprintf

用格式控制,数字转换成字符串

sscanf

用格式控制,字符串转换成数字

str2mat

字符串转换成一个文本矩阵

str2num

字符串转换成数字

upper

字符串转换成大写

在许多情况下,希望把一个数值嵌入到字符串中。几个字符串转换可完成这个任务。

? rad=2.5; area=pi*rad^2;

? t=[' A circle of radius ' num2str(rad) ' has an area of ' num2str(area) ' . ' ] ;

? disp(t)

A circle of radius 2.5 has an area of 19.63.

这里函数num2str用来把数值转换成字符串,字符串连接用来把所转换的数嵌人到一个字符串句子中。按类似方式,int2str把整数转换成字符串。无论是num2str还是int2str都调用函数sprintf,它用类似C语言语法把数值转换成字符串。函数fprintf经常是函数disp的一个有用替换,由于它提供了对结果更多的控制。当准备把格式化的数据写到一个文件中

去时,按缺省它在命令窗口显示结果。例如,

? fprintf(' See what this does ')

See what this does?

? fprintf(' See what this does\n ')

See what this does

在上面第一个例子里,fprintf显示字符串,然后立即给出MATLAB提示符。相反,在第二个例子里,\n 插入一个新行字符,在MATLAB提示符出现之前创建一个新行。

无论fprintf还是sprintf以同样方式处理输入参量,但fprintf把输出送到显示屏或文件中,而sprintf把输出返回到一个字符串中。例如,上面的例子用num2str可重写为

? t=sprintf(' A circle of radius %.4g has an area of %.4g. ', rad, area);

? disp(t)

A circle of radius 2.5 has an area of 19.63.

? fprintf(' A circle of radius %.4g has an area of %.4g.\n ' , rad, area)

A circle of radius 2.5 has an area of 19.63.

这里%.4g是用在函数num2str中的数据格式。%.4g就是用指数或定点标记,不管哪一种更短些,只显示至4位数字。除了g格式,还可用e (指数)和f (定点)转换。表6.2表明在各种不同转换下,如何显示pi结果。

表6.2

数值格式转换例子

命令

结果

fprintf(' %.0e\n ',pi)

3e+00

fprintf(' %.1e\n ',pi)

3.1e+00

fprintf(' %.3e\n ',pi)

3.142e+00

fprintf(' %.5e\n ',pi)

3.14159e+00

fprintf(' %.10e\n ',pi)

3.1415926536e+00

fprintf(' %.0f\n ',pi)

3

fprintf(' %.1f\n ',pi)

3.1

fprintf(' %.3f\n ',pi)

3.142

fprintf(' %.5f\n ',pi)

3.14159

fprintf(' %.10f\n ',pi)

3.1415926536

fprintf(' %.0g\n ',pi)

3

fprintf(' %.1g\n ',pi)

3

fprintf(' %.3g\n ',pi)

3.14

fprintf(' %.5g\n ',pi)

3.1416

fprintf(' %.10g\n ',pi)

3.141592654

fprintf(' %.8.0g\n ',pi)

3

fprintf(' %.8.1g\n ',pi)

3

fprintf(' %.8.3g\n ',pi)

3.14

fprintf(' %.8.5g\n ',pi)

3.1416

fprintf(' %.8.10g\n ',pi)

3.141592654

注意,对e 和f 格式,小数点右边的十进制数就是小数点右边要显示的多少位数字。相反,在g 的格式里,小数点右边的十进制数指定了显示数字的总位数。另外,注意最后的五行,其结果指定为8个字符长度,且是右对齐。在最后一行,8被忽略,因为指定超过了8位。

概括起来,当需要比缺省函数disp,num2str和int2str所提供的更多的控制时,fprintf和sprintf是有用的。

函数str2mat把一列的几个字符串转换成一个字符串矩阵。例如,

? a=' one ' ; b= ' two ' ; c= ' three ' ;

? disp(str2mat(a, b, c, ' four '))

one

two

three

four

从上面看不明显,上面的每行有同样数目的元素。较短行用空格补齐,使结果形成一个有效的矩阵在逆方向转换中,有时是很方便的。

? s= ' [1 2; pi 4] ' % a string of a MATLAB matrix

s =

[1 2; pi 4]

? str2num(s)

ans =

1.0000

2.0000

3.1416

4.0000

? s=' 123e+5 ' % a string containing a simple number

s =

123e+5

? str2num(s)

ans =

12300000

函数str2num不能接受用户定义的变量,也不能执行转换过程的算术运算。

(完整版)MATLAB常用函数大全

一、MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数(Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 三、适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 四、MATLAB的永久常数

solve函数

(二)微分方程的解 一、几个会用到的函数: 1、solve 函数: Matlab 中solve 函数主要是用来求解线性方程组的解析解或者精确解。 solve 函数的语法定义主要有以下四种: solve(‘eq ’) solve(‘eq ’, ‘var ’) solve(‘eq1’,’eq2’, …,’ eqn ’) g = solve(‘eq1’, ‘eq2’, …,’ eqn ’, ‘var1’, ‘var2’, …, ‘varn ’) eq 代表字符串形式的方程,var 代表的是变量。 例1:解方程02=++c bx ax 程序是:syms a b c x; solve('a*x^2+b*x+c') ( 也可写成solve('a*x^2+b*x+c=0') ) 当没有指定变量的时候,matlab 默认求解的是关于x 的解,求解的结果为: ans = -(b + (b^2 - 4*a*c)^(1/2))/(2*a) -(b - (b^2 - 4*a*c)^(1/2))/(2*a)d

当指定变量为b 的时候: solve('a*x^2+b*x+c','b') 求解的结果为: ans = -(a*x^2 + c)/xs = -(a*x^2 + c)/x 例2:对于方程组? ??=-=+5111y x y x 的情况 S=solve('x+y=1','x-11*y=5'); >> S=[,](这里或者写成x= y= 如果解得是一个方程组,而且采用了形如 [a,b]=solve(a+b=1, 2a-b=4ab) 的格式,那么,在MATLAB R2014a 中没问题,可以保证输出的a ,b 就等于相应的解,但是在R2012b 等早先版本中不能保证输出的顺序就是你声明变量时的顺序。所以最好采用g=solve(a+b=1, 2a-b=4ab)这种单输出格式,这样输出的是一个结构体,和就是对应的解。 S =[ 4/3, -1/3]

Matlab中solve函数用法详解

Matlab中solve函数主要是用来求解线性方程组的解析解或者精确解。对于得出的结果是符号变量,可以通过vpa()得出任意位数的数值解! solve函数的语法定义主要有以下四种: solve(eq) solve(eq, var) solve(eq1, eq2, …, eqn) g = solve(eq1, eq2, …, eqn, var1, var2, …, varn) eq代表方程,var代表的是变量。 例1: syms a b c x; solve(‘a*x^2 + b*x + c’) 当没有指定变量的时候matlab默认求解的是关于x的一元二次方程的解,求解的结果为: ans = -(b + (b^2 – 4*a*c)^(1/2))/(2*a) -(b – (b^2 – 4*a*c)^(1/2))/(2*a) 当指定变量为b的时候: syms a b c x; solve(‘a*x^2 + b*x + c’,'b’) 求解的结果为: ans = -(a*x^2 + c)/x 从上面的例子很容易理解语法1,2。 例2:对于方程组的情况 syms x; S = solve(‘x + y = 1′,’x –11*y = 5′); S = [S.x S.y] 求解的结果为: S = [ 4/3, -1/3]

例3: syms a u v; A = solve(‘a*u^2 + v^2′, ‘u –v = 1′, ‘a^2 –5*a + 6′) 的求解结果为 A = a: [4x1 sym] u: [4x1 sym] v: [4x1 sym] 对于查看具体的数值可以通过 Aa = A.a Au = A.u Av = A.v 命令来查看。 PS:对于solve求解的方程,默认的为eq=0,eq1=0,eq2=0….eqn=0;

matlab 常用函数汇总

matlab 常用函数汇总 编程2008-07-10 21:45:20 阅读46 评论0 字号:大中小订阅matlab常用函数 图形注释 Title 图形标题 Xlabel X轴标记 Ylabel Y轴标记 Text 文本注释 Gtext 用鼠标放置文本 Grid 网格线 MATLAB编程语言 Function 增加新的函数 Eval 执行由MA TLAB表达式构成的字串 Feval 执行由字串指定的函数 Global 定义全局变量 程序控制流 If 条件执行语句 Else 与if命令配合使用 Elseif 与if命令配合使用 End For,while和if语句的结束 For 重复执行指定次数(循环) While 重复执行不定次数(循环) Break 终止循环的执行 Return 返回引用的函数 Error 显示信息并终止函数的执行 交互输入 Input 提示用户输入 Keyboard 像底稿文件一样使用键盘输入 Menu 产生由用户输入选择的菜单 Pause 等待用户响应 Uimenu 建立用户界面菜单 Uicontrol 建立用户界面控制 一般字符串函数 Strings MATLAB中有关字符串函数的说明 Abs 变字符串为数值 Setstr 变数值为字符串 Isstr 当变量为字符串时其值为真 Blanks 空串 Deblank 删除尾部的空串 Str2mat 从各个字符串中形成文本矩阵 Eval 执行由MA TLAB表达式组成的串 字符串比较 Strcmp , , , 比较字符串 Findstr 在一字符串中查找另一个子串

Upper 变字符串为大写 Lower 变字符串为小写 Isletter 当变量为字母时,其值为真 Isspace 当变量为空白字符时,其值为真 字符串与数值之间变换 Num2str 变数值为字符串 Int2str 变整数为字符串 Str2num 变字符串为数值 Sprintf 变数值为格式控制下的字符串 Sscanf 变字符串为格式控制下的数值 十进制与十六进制数之间变换 Hex2num 变十六进制为IEEE标准下的浮点数Hex2dec 变十六制数为十进制数 Dec2hex 变十进制数为十六进制数 建模 Append 追加系统动态特性 Augstate 变量状态作为输出 Blkbuild 从方框图中构造状态空间系统Cloop 系统的闭环 Connect 方框图建模 Conv 两个多项式的卷积 Destim 从增益矩阵中形成离散状态估计器Dreg 从增益矩阵中形成离散控制器和估计器Drmodel 产生随机离散模型 Estim 从增益矩阵中形成连续状态估计器Feedback 反馈系统连接 Ord2 产生二阶系统的A、B、C、D Pade 时延的Pade近似 Parallel 并行系统连接 Reg 从增益矩阵中形成连续控制器和估计器Rmodel 产生随机连续模型 Series 串行系统连接 Ssdelete 从模型中删除输入、输出或状态ssselect 从大系统中选择子系统 模型变换 C2d 变连续系统为离散系统 C2dm 利用指定方法变连续为离散系统 C2dt 带一延时变连续为离散系统 D2c 变离散为连续系统 D2cm 利用指定方法变离散为连续系统 Poly 变根值表示为多项式表示 Residue 部分分式展开 Ss2tf 变状态空间表示为传递函数表示 Ss2zp 变状态空间表示为零极点表示

Matlab 最优化函数

Matlab 最优化函数 2011-07-10 22:05 最优化: bintprog Solve binary integer programming problems 解决二值整数规划问题 fgoalattain Solve multiobjective goal attainment problems解决多目标达到问题 fminbndFind Find minimum of single-variable function on fixed interval 在固定区间上寻找单变量函数最小值 fmincon Find minimum of constrained nonlinear multivariable function寻找约束非线性多元函数的最小值 fminimax Solve minimax constraint problem解决最小最大约束问题 fminsearch Find minimum of unconstrained multivariable function using derivative-free method 寻找无约束多元函数最小值采用无微分方法 fminunc Find minimum of unconstrained multivariable function 寻找无约束多元函数的最小值 fseminf Find minimum of semi-infinitely constrained multivariable nonlinear function 寻找半无穷约束多元非线性函数最小值 linprog Solve linear programming problem 解决线性规划问题 squadprog Solve quadratic programming problems

matlab常用解方程及方程组函数

1. roots 求解多项式的根 r=roots(c) 注意: c 为一维向量,者返回指定多项式的所有根( 包括复根),poly 和roots 是互为反运算,还有就是roots 只能求解多项式的解 还有下面几个函数poly2sym、sym2poly 、eig >>syms x >>y=x A5+3*x A3+3; >>c=sym2poly(y);%求解多项式系数 >>r=roots(c); >>poly(r) 2. residue 求留数 [r, p, k] = residue(b,a) >>b = [ 5 3 -2 7] >>a = [-4 0 8 3] >>[r, p, k] = residue(b,a) 3. solve 符号解方程(组)——使用最多的 g = solve(eq1,eq2,...,eqn,var1,var2,...,varn) 注意:eqn 和varn 可以是符号表达式,也可以是字符串表达式,但是使用符号表达式时不能有“=号”,假如说varn 没有给出,使用findsym 函数找出默认的求解变量。返回的g 是个结构体,以varn 为字段。由于符号求解的局限性,好多情况下可能得到空矩阵,此时只能用数值解法 解方程A=solve('a*xA2 + b*x + c') 解方程组B=solve('a*uA2 + vA2', 'u - v = 1', 'aA2 - 5*a + 6') 4. fzero 数值求零点 [x,fval,exitflag,output]=fzero(fun,x0,options,p1,p2...) fun 是目标函数,可以是句柄(@)、inline 函数或M 文件名 x0 是初值,可以是标量也可以是长度为2 的向量,前者给定一个位置,后者是给定一个范围options 是优化参数,通过optimset 设置,optimget 获取,一般使用默认的就可以了,具体参照帮助 p1,p2...为需要传递的其它参数 假如说(x/1446)A2+p/504.1+(t/330.9)*(log(1-x/1446)+(1-1 /5.3)*x/1446)=0 的根,其中p,t 是已知

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB 实现(程序) 摘自:张登奇,彭仕玉.差分方程的解法分析及其MATLAB 实现[J]. 湖南理工学院学报.2014(03) 引言 线性常系数差分方程是描述线性时不变离散时间系统的数学模型,求解差分方程是分析离散时间系统的重要内容.在《信号与系统》课程中介绍的求解方法主要有迭代法、时域经典法、双零法和变换域 法[1]. 1 迭代法 例1 已知离散系统的差分方程为)1(3 1)()2(81)1(43)(-+=-+--n x n x n y n y n y ,激励信号为)()4 3()(n u n x n =,初始状态为21)2(4)1(=-=-y y ,.求系统响应. 根据激励信号和初始状态,手工依次迭代可算出24 59)1(,25)0(==y y . 利用MATLAB 中的filter 函数实现迭代过程的m 程序如下: clc;clear;format compact; a=[1,-3/4,1/8],b=[1,1/3,0], %输入差分方程系数向量,不足补0对齐 n=0:10;xn=(3/4).^n, %输入激励信号 zx=[0,0],zy=[4,12], %输入初始状态 zi=filtic(b,a,zy,zx),%计算等效初始条件 [yn,zf]=filter(b,a,xn,zi),%迭代计算输出和后段等效初始条件 2 时域经典法 用时域经典法求解差分方程:先求齐次解;再将激励信号代入方程右端化简得自由项,根据自由项形 式求特解;然后根据边界条件求完全解[3].用时域经典法求解例1的基本步骤如下. (1)求齐次解.特征方程为081432=+-αα,可算出4 1 , 2121==αα.高阶特征根可用MATLAB 的roots 函数计算.齐次解为. 0 , )4 1()21()(21≥+=n C C n y n n h (2)求方程的特解.将)()4 3()(n u n x n =代入差分方程右端得自由项为 ?????≥?==-?+-1,)4 3(9130 ,1)1()43(31)()43(1n n n u n u n n n 当1≥n 时,特解可设为n p D n y )4 3()(=,代入差分方程求得213=D . (3)利用边界条件求完全解.当n =0时迭代求出25)0(=y ,当n ≥1时,完全解的形式为 ,)4 3(213 )41()21()(21n n n C C n y ?++=选择求完全解系数的边界条件可参考文[4]选)1(),0(-y y .根据边界条件求得35,31721=-=C C .注意完全解的表达式只适于特解成立的n 取值范围,其他点要用 )(n δ及其延迟表示,如果其值符合表达式则可合并处理.差分方程的完全解为

(完整版)matlab函数大全最完整版

MATLAB函数大全 Matlab有没有求矩阵行数/列数/维数的函数? ndims(A)返回A的维数 size(A)返回A各个维的最大元素个数 length(A)返回max(size(A)) [m,n]=size(A)如果A是二维数组,返回行数和列数nnz(A)返回A中非0元素的个数 MATLAB的取整函数:fix(x), floor(x) :,ceil(x) , round(x) (1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans = 3 -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans =

3 -4 (3)ceil(x) : 大于x 的最小整数>> ceil( [3.12 -3.12]) ans = 4 -3 (4)四舍五入取整 >> round(3.12 -3.12) ans = >> round([3.12 -3.12]) ans =

3 -3 >> 如何用matlab生成随机数函数 rand(1) rand(n):生成0到1之间的n阶随机数方阵rand(m,n):生成0到1之间的m×n的随机数矩阵(现成的函数) 另外: Matlab随机数生成函数 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布的随机数生成器 frnd f分布的随机数生成器 gamrnd 伽玛分布的随机数生成器 geornd 几何分布的随机数生成器 hygernd 超几何分布的随机数生成器

matlab中所有函数解析_太全了

A a abs 绝对值, 模 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 all 所有元素均非零则为真alpha 透明控制 angle 相角 ans 最新表达式的运算结果any 有非零元则为真 area 面域图 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红、黄浓淡色 axis 轴的刻度和表现 B b bar 直方图 binocdf 二项分布概率 binopdf 二项分布累积概率binornd 产生二项分布随机数组blanks 空格符号 bode 给出系统的对数频率曲线bone 蓝色调浓淡色阵 box 坐标封闭开关 break 终止最内循环brighten 控制色彩的明暗 butter ButterWorth低通滤波器 C c caxis (伪)颜色轴刻度 cd 设置当前工作目录 cdf2rdf 复数对角型转换到实块对角型 ceil 朝正无穷大方向取整 cell 创建单元数组 char 创建字符串数组或者将其他类型 变量转化为字符串数组 charfcn Maple函数 Children 图形对象的子对象 clabel 等高线标注 class 判别数据类别 clc 清除指令窗中显示内容 clear 从内存中清除变量和函数 clf 清除当前图形窗图形 close 关闭图形窗 collect 合并同类项 Color 图形对象色彩属性 colorbar 显示色条 colorcube 三浓淡多彩交错色 colordef 定义图形窗色彩 colormap 设置色图 comet 彗星状轨迹图 comet3 三维彗星动态轨迹线图compass 射线图;主用于方向和速度 cond 矩阵条件数 conj 复数共轭 continue 将控制转交给外层的for或while 循环 contour 等高线图

MATLAB中常用的函数

[转]MATLAB 主要函数(一) (2008-05-11 17:09:43) 转载 标签: 分类:IT matlab 函数 杂谈 MATLAB主要函数指令表(按功能分类)原贴地址:https://www.sodocs.net/doc/4112915383.html,/casularm/archive/2007/04/20/1572638.aspx 1常用指令(General Purpose Commands) 1.1通用信息查询(General information) demo 演示程序 help 在线帮助指令 helpbrowser 超文本文档帮助信息 helpdesk 超文本文档帮助信息 helpwin 打开在线帮助窗 info MATLAB 和MathWorks 公司的信息 subscribe MATLAB 用户注册 ver MATLAB 和TOOLBOX 的版本信息 version MATLAB 版本 whatsnew 显示版本新特征 1.2工作空间管理(Managing the workspace) clear 从内存中清除变量和函数 exit 关闭MATLAB load 从磁盘中调入数据变量 pack 合并工作内存中的碎块 quit 退出MATLAB save 把内存变量存入磁盘 who 列出工作内存中的变量名

whos 列出工作内存中的变量细节 workspace 工作内存浏览器 1.3管理指令和函数(Managing commands and functions) edit 矩阵编辑器 edit 打开M 文件 inmem 查看内存中的P 码文件 mex 创建MEX 文件 open 打开文件 pcode 生成P 码文件 type 显示文件内容 what 列出当前目录上的M、MAT、MEX 文件 which 确定指定函数和文件的位置 1.4搜索路径的管理(Managing the seach patli) addpath 添加搜索路径 rmpath 从搜索路径中删除目录 path 控制MATLAB 的搜索路径 pathtool 修改搜索路径 1.5指令窗控制(Controlling the command window) beep 产生beep 声 echo 显示命令文件指令的切换开关 diary 储存MATLAB 指令窗操作内容 format 设置数据输出格式 more 命令窗口分页输出的控制开关 1.6操作系统指令(Operating system commands) cd 改变当前工作目录 computer 计算机类型 copyfile 文件拷贝 delete 删除文件 dir 列出的文件 dos 执行dos 指令并返还结果

Matlab中常用的函数集

sort (排序) xlsread ( exl文件导入) load (txt 文件,mat文件等导入) 附录Ⅰ工具箱函数汇总 Ⅰ.1 统计工具箱函数 表Ⅰ-1 概率密度函数 函数名对应分布的概率密度函数 betapdf 贝塔分布的概率密度函数 binopdf 二项分布的概率密度函数 chi2pdf 卡方分布的概率密度函数 exppdf 指数分布的概率密度函数 fpdf f分布的概率密度函数 gampdf 伽玛分布的概率密度函数 geopdf 几何分布的概率密度函数 hygepdf 超几何分布的概率密度函数normpdf 正态(高斯)分布的概率密度函数lognpdf 对数正态分布的概率密度函数nbinpdf 负二项分布的概率密度函数 ncfpdf 非中心f分布的概率密度函数nctpdf 非中心t分布的概率密度函数 ncx2pdf 非中心卡方分布的概率密度函数poisspdf 泊松分布的概率密度函数 raylpdf 雷利分布的概率密度函数 tpdf 学生氏t分布的概率密度函数unidpdf 离散均匀分布的概率密度函数unifpdf 连续均匀分布的概率密度函数weibpdf 威布尔分布的概率密度函数 表Ⅰ-2 累加分布函数 函数名对应分布的累加函数 betacdf 贝塔分布的累加函数 binocdf 二项分布的累加函数 chi2cdf 卡方分布的累加函数 expcdf 指数分布的累加函数 fcdf f分布的累加函数 gamcdf 伽玛分布的累加函数 geocdf 几何分布的累加函数 hygecdf 超几何分布的累加函数

logncdf 对数正态分布的累加函数 nbincdf 负二项分布的累加函数 ncfcdf 非中心f分布的累加函数 nctcdf 非中心t分布的累加函数 ncx2cdf 非中心卡方分布的累加函数 normcdf 正态(高斯)分布的累加函数 poisscdf 泊松分布的累加函数 raylcdf 雷利分布的累加函数 tcdf 学生氏t分布的累加函数 unidcdf 离散均匀分布的累加函数 unifcdf 连续均匀分布的累加函数 weibcdf 威布尔分布的累加函数 表Ⅰ-3 累加分布函数的逆函数 函数名对应分布的累加分布函数逆函数 betainv 贝塔分布的累加分布函数逆函数 binoinv 二项分布的累加分布函数逆函数 chi2inv 卡方分布的累加分布函数逆函数 expinv 指数分布的累加分布函数逆函数 finv f分布的累加分布函数逆函数 gaminv 伽玛分布的累加分布函数逆函数 geoinv 几何分布的累加分布函数逆函数hygeinv 超几何分布的累加分布函数逆函数logninv 对数正态分布的累加分布函数逆函数nbininv 负二项分布的累加分布函数逆函数ncfinv 非中心f分布的累加分布函数逆函数nctinv 非中心t分布的累加分布函数逆函数 ncx2inv 非中心卡方分布的累加分布函数逆函数icdf norminv 正态(高斯)分布的累加分布函数逆函数poissinv 泊松分布的累加分布函数逆函数 raylinv 雷利分布的累加分布函数逆函数 tinv 学生氏t分布的累加分布函数逆函数unidinv 离散均匀分布的累加分布函数逆函数unifinv 连续均匀分布的累加分布函数逆函数weibinv 威布尔分布的累加分布函数逆函数 表Ⅰ-4 随机数生成器函数

MatLab常用函数大全

1、求组合数 C,则输入: 求k n nchoosek(n,k) 例:nchoosek(4,2) = 6. 2、求阶乘 求n!.则输入: Factorial(n). 例:factorial(5) = 120. 3、求全排列 perms(x). 例:求x = [1,2,3]; Perms(x),输出结果为: ans = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2 4、求指数 求a^b:Power(a,b) ; 例:求2^3 ; Ans = pow(2,3) ; 5、求行列式 求矩阵A的行列式:det(A); 例:A=[1 2;3 4] ; 则det(A) = -2 ; 6、求矩阵的转置 求矩阵A的转置矩阵:A’ 转置符号为单引号. 7、求向量的指数 求向量p=[1 2 3 4]'的三次方:p.^3 例: p=[1 2 3 4]' A=[p,p.^2,p.^3,p.^4] 结果为:

注意:在p 与符号”^”之间的”.”不可少. 8、求自然对数 求ln(x):Log(x) 例:log(2) = 0.6931 9、求矩阵的逆矩阵 求矩阵A 的逆矩阵:inv(A) 例:a= [1 2;3 4]; 则 10、多项式的乘法运算 函数conv(p1,p2)用于求多项式p1和p2的乘积。这里,p1、p2是两个多项式系数向量。 例2-2 求多项式43810x x +-和223x x -+的乘积。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; c=conv(p1,p2) 11、多项式除法 函数[q ,r]=deconv(p1,p2)用于多项式p1和p2作除法运算,其中q 返回多项式p1除以p2的商式,r 返回p1除以p2的余式。这里,q 和r 仍是多项式系数向量。 例2-3 求多项式43810x x +-除以多项式223x x -+的结果。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; [q,r]=deconv(p1,p2) 12、求一个向量的最大值 求一个向量x 的最大值的函数有两种调用格式,分别是:

MatLab在函数的求解方法

MatLab & 数学建模第四讲数值计算

一、方程求解 求解单个代数方程 MATLAB具有求解符号表达式的工具,如果表达式不是一个方程式(不含等号),则在求解之前函数solve将表达式置成等于0。 >> solve( ' a*x^2+b*x+c ' ) % solve for the roots of the eqution ans= [1/2/a*(-b+(b^2-4*a*c)^1/2)] [1/2/a*(-b-(b^2-4*a*c)^1/2)] 结果是符号向量,其元素是方程的2个解。如果想对非缺省x变量求解,solve 必须指定变量。 >> solve( ' a*x^2+b*x+c ' , ' b ' ) % solve for b ans= -(a*x^2+c)/x 带有等号的符号方程也可以求解。 >> f=solve( ' cos(x)=sin(x) ' ) % solve for x f= 1/4*pi >> t=solve( ' tan(2*x)=sin(x) ' ) t= [ 0] [acos(1/2+1/2*3^(1/2))] [acos(1/2=1/2*3^(1/2))] 并得到数值解。 >> numeric(f) ans=

0.7854 >> numeric(t) ans= 0 + 0.8314i 1.9455 注意在求解周期函数方程时,有无穷多的解。在这种情况下,solve对解的搜索范围限制在接近于零的有限范围,并返回非唯一的解的子集。 如果不能求得符号解,就计算可变精度解。 >> x=solve( ' exp(x)=tan(x) ' ) x= 1.306326940423079 代数方程组求解 可以同时求解若干代数方程,语句solve(s1,s2,.....,sn)对缺省变量求解n个方程,语句solve(s1,s2,...,sn,' v1,v2,...,vn ')对n个' v1,v2,...vn '的未知数求解n个方程。 solve(f) 解符号方程式f。 solve(f1,…,fn) 解由f1,…,fn组成的联立方程式。 我们先定义以下的方程式: >>eq1 = 'x-3=4'; % 注意也可写成'eq1=x-7' >>eq2 = 'x*2-x-6=0'; % 注意也可写成'eq2=x*2-x-6' >>eq3 = 'x2+2*x+4=0'; >>eq4 = '3*x+2*y-z=10'; >>eq5 = '-x+3*y+2*z=5'; >>eq6 = 'x-y-z=-1'; >>solve(eq1) ans=

matlab中常用的函数

A abs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角 ans 表达式计算结果的缺省变量名any 所有元素非全零为真area 面域图 argnames 函数M文件宗量名asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵axes 创建轴对象的低层指令axis 控制轴刻度和风格的高层指令 B bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图barh 二维水平直方图 base2dec X进制转换为十进制bin2dec 二进制转换为十进制blanks 创建空格串 bone 蓝色调黑白色图阵box 框状坐标轴 break while 或for 环中断指令brighten 亮度控制 C capture ;3版以前?捕获当前图形cart2pol 直角坐标变为极或柱坐标cart2sph 直角坐标变为球坐标cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具 cdf2rdf 复数特征值对角阵转为实数块对角阵 ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组celldisp 显示元胞数组内容cellplot 元胞数组内部结构图示char 把数值、符号、内联类转换为字符对象 chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解

MATLAB常用函数

1概述安装介绍(略)。 2 矩阵和数组 2.1 创建特殊矩阵函数 Compan 伴随矩阵Diag 对角矩阵Eye 单位矩阵Gallery 测试矩阵Hadamard hadamard矩阵Hilb hilb矩阵Invhilb invhilb矩阵 Magic魔方矩阵Ones 全一矩阵Rand均匀分布随机矩阵 Randn 正态分布随机矩阵Rosser经典对称特征测试矩阵 Wilkinson wilkinson特征值测试矩阵Zeros 全零矩阵 注:diag(A,n)以向量A为主对角线为基准偏移n个位置。 2.2 矩阵连接 水平c=[a,b]或者c=[a b] 垂直c=[a;b] 连接函数(1)Cat 指定方向;(2)Cat(1,a,b)水平;(3)Cat(2,a,b)垂直;(4)Horzcat 水平方向;(5)Vertcat 垂直方向(6)Repmat 对现有矩阵复制粘贴(7)Blkdiag 以对角阵方式重组。 2.3 改变矩阵形状 Reshape 制定行列重排;Rot90 逆时针90;Filplr 垂直方向为轴旋转180;Flipud 水平方向为轴旋转180;Flipdim 指定方向为轴翻转矩阵 2.4 向量生成函数 Linspace(a,b)首尾为a,b的100个数;Linspace(a,b,n) Logspace(a,b)以10为底;Logspace(a,b,n);Logspace(a,pi) 2.5 矩阵信息的获取 Isempty 判断为空;Isscalar 判断为标量;Isvector 判断向量;Issparse 判断稀疏矩阵;Isa 判断指定数据类型;Iscell 判断元胞数组类型;Iscellstr 元胞字符串数组类型;Isfloat 判断浮点数;Isinteger 判断整形类型;Islogical 判断逻辑类型Isnumeric 判断数值类型;Isreal 判断实数类型;Isstruct 判断结构体类型;Length 最长维长度;Ndims 维数;Numel 元素个数;Size 指定维长度 3 数据类型

MATLAB 常用函数总结

MATLAB 常用函数总结 Matlab的内部常数 pi 圆周率 exp(1)自然对数的底数e i 或j 虚数单位 Inf或 inf 无穷大 Matlab的常用内部数学函数

Matlab中的数学运算符 Matlab的关系运算符

如何用matlab求阶乘factorial(n)求n的阶乘 如何用matlab进行多项式运算(1)合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量)(2)因式分解 syms 表达式中包含的变量 factor(表达式) (3)展开 syms 表达式中包含的变量 expand(表达式) (4)化简 syms 表达式中包含的变量simplify(表达式) 如何用matlab进行复数运算

如何用Matlab求集合的交集、并集、差集和补集 如何用matlab排序 sort(v)将向量v的元素从小到大排列(升序排列)sort(v,dim,’descend or ascend’) 当dim=1时矩阵按列排序,descend or ascend用来控制升序还是降序 当dim=2时矩阵按行排序,descend or ascend用来控制升序还是降序 如何用Matlab求极限 (1)极限: syms x limit(f(x), x, a)求f(x)关于x趋于a时的极限 (2)单侧极限: 左极限:syms x limit(f(x), x, a,’left’) 求f(x)关于x趋于a时的左极限

右极限:syms x limit(f(x), x, a,’right’) 求f(x)关于x趋于a时的右极限 如何用Matlab求导数 diff('f(x)')diff('f(x)','x') 求f(x)关于x的导数 或者:syms x diff(f(x)) syms x diff(f(x), x) 如何用Matlab求高阶导数 如何用Matlab求高阶导数 diff('f(x)',n) diff('f(x)','x',n)求f(x)关于x的n阶导数 syms x diff(f(x),n) syms x diff(f(x), x,n) 如何用Matlab求不定积分 int('f(x)') int ('f(x)','x')求f(x)关于x的积分 syms x int(f(x)) syms x int(f(x), x) 如何用Matlab求定积分、广义积分int('f(x)',a,b) int ('f(x)','x',a,b)求f(x)关于x的积分,区间为a到b

Matlab常用工具箱及常用函数

Matlab常用工具箱 MATLAB包括拥有数百个内部函数的主包和三十几种工具包.工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包. Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱 常用函数Matlab内部常数[3] eps:浮点相对精度 exp:自然对数的底数e i或j:基本虚数单位 inf或Inf:无限大, 例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargout: 函数的输出引数个数 lasterr:存放最新的错误信息 lastwarn:存放最新的警告信息 MATLAB常用基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle)

matlab常用解方程及方程组函数

matlab常用解方程及方程组函数 1.roots求解多项式的根 r=roots(c) 注意:c为一维向量,者返回指定多项式的所有根(包括复根),poly和roots是互为反运算,还有就是roots只能求解多项式的解 还有下面几个函数poly2sym、sym2poly、eig >>syms x >>y=x^5+3*x^3+3; >>c=sym2poly(y);%求解多项式系数 >>r=roots(c); >>poly(r) 2.residue求留数 [r, p, k] = residue(b,a) >>b = [ 5 3 -2 7] >>a = [-4 0 8 3] >>[r, p, k] = residue(b,a) 3.solve符号解方程(组)——使用最多的 g = solve(eq1,eq2,...,eqn,var1,var2,...,varn) 注意:eqn和varn可以是符号表达式,也可以是字符串表达式,但是使用符号表达式时不能有“=”号,假如说varn没有给出,使用findsym函数找出默认的求解变量。返回的g是一个结构体,以varn为字段。由于符号求解的局限性,好多情况下可能得到空矩阵,此时只能用数值解法 解方程A=solve('a*x^2 + b*x + c') 解方程组B=solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a + 6') 4.fzero数值求零点 [x,fval,exitflag,output]=fzero(fun,x0,options,p1,p2...) fun是目标函数,可以是句柄(@)、inline函数或M文件名 x0是初值,可以是标量也可以是长度为2的向量,前者给定一个位置,后者是给定一个范围 options是优化参数,通过optimset设置,optimget获取,一般使用默认的就可以了,具体参照帮助 p1,p2...为需要传递的其它参数 假如说(x/1446)^2+p/504.1+(t/330.9)*(log(1-x/1446)+(1-1/5.3)*x/1446)=0的根,其中p,t是已知参数,但是每次都改变 那么目标函数如下三种书写格式,效果完全等效。注意参数列表中,未知数一定放第一位,其他参数放后面 (1)objfun=@(x,p,t)(x/1446).^2+p/504.1+(t/330.9).*(log(1-x/1446)+(1-1/5.3).*x/1446); (2)objfun=inline('(x/1446).^2+p/504.1+(t/330.9).*(log(1-x/1446)+(1-1/5.3).*x/1446)','x','p','t') 此时的调用格式如下 fzero(objfun,x0,options,p,t)%如果options使用的默认的话,那直接使用[],p和t就是我们需要传递的参数 fzero(@(x)objfun(x,p,t),x0,options)%这种格式与上面的等效 区别就是前者,将参数p和t作为fzero的参数进行传递,而后者是将p和t作为objfun的参数进行传递,没有本质区别 (3)function f=objfun(x,p,t)%以M文件格式书写目标函数 f=(x/1446).^2+p/504.1+(t/330.9).*(log(1-x/1446)+(1-1/5.3).*x/1446); 此时有三种调用格式

相关主题