matlab中的字符串操作总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符串操作总结
作者:晏江
C{3}对内容进行寻址
C(3)对单元索引
(24)利用正在表达式搜索
>> str=’asdfa sfdgdfg tyefgr tyj sdfg qwfge r rety yi .,m zxfgc fdgh fgh’;
>> regexp(str,’fg’)
ans =
12 18 29 34 54 63
我们可以使用字符类来匹配指定的字符,如一个字母,一个数字或一个空格符,也可以用来匹配一个字符集。最有用的一个字符类是一个句号(.),它用来表示任意的单个字符。另外一个有用的字符类是位于方括号中的字符序列或某一部分字符,这一语法用来表示寻找与方括号中任何一个字符元素匹配的字符串子集。例如:
我们要在str中寻找第一个字符为d,最后一个字符为f或g的三个字符组合,可以使用下面的代码,
>> regexpi(str,’d.[fg]’)
ans =
11 28
>> regexpi(str,’s.[fg]’,'match’)列出来
ans =
’sdf’’sdf’
>> regexp(str,’[a-d]’)
ans =
1 3 5 9 11 28 56 59 列出a-d所有
(25)关系运算:
xor(x,y) 异或关系
any(X) X中有一个不为零,结果就为一
all(X) X中只要有一个为零即为零。
B=B+(B==0)*eps,这样可以避免零的出现
>> B=-2:2
B =
-2 -1 0 1 2
>> x=sin(B)./B
Warning: Divide by zero.
x =
0.4546 0.8415 NaN 0.8415 0.4546
>> B=B+(B==0)*eps
B =
-2.0000 -1.0000 0.0000 1.0000 2.0000
>> x=sin(B)./B
x =
0.4546 0.8415 1.0000 0.8415 0.4546
(26)流程控制
switch expression
case test_expression
(commands1)
case test_expression
(commands2)
case test_expression
(commands3)
..
end
try
(commands1)
catch
(command2)
end
在这里,将(commands1)中的命令都执行,如果没有错误,程序控制将直接跳到end。如果哟错误,程序控制酒立即跳到catch语句。执行表达式(commands2).
利用lasterr函数可以返回代码执行遇到的河中错误:
>> matlab(:)
??? Undefined function or variable “matlab”.
>> lasterr
ans =
Undefined function or variable “matlab”.
另外利用lasterror可以将更详细的错误信息返回到一个结构体中:
>> errstr=lasterror
errstr =
mess age: ‘Undefined function or variable “matlab”.’
identifier: ‘MATLAB:UndefinedFunction’
stack: [0×1 struct]
>> errstr.message
ans =
Undefined function or variable “matlab”.
>>(27) 函数
error(‘afgfadgsdf’) 终止程序,并且返回括号中的内容
error和fprintf一样可以在字符串中格式化显示的数字变量
warning() 一样的只是程序继续运行。
pcode myfunction 其中myfunction是要编译的m文件,利用这个命令可以创建伪码文件,提高运行速度。
(28)创建用户自己的工具箱
当一个工程鳊好之后,我们可以把它存在toolbox文件夹中,这样matlab就可以把它这些
文件再如到高速缓存区去,提高速度。为了便于文件的管理,和日后的维护,我们最好添加两个脚本文件:Readme.m和Contents.m这两个文件不执行任何操作,而全部由一些注释行组成。
(29)getpref 获取 setpref 设置, addpref 添加 rmpref 删除, ispref, uigetpref, uisetpref 工具箱或者函数的优先权
(30)创建命令:
看一下edit命令就知道了。
(31)函数句柄和匿名函数:
>> il_humps=inline(’1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6′,’x')
il_humps =
Inline function:
il_humps(x) = 1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6
inline函数从一个字符串创建一个函数,并以x为输入变量。
要验证一个字符串表示的函数或者内联函数,可以使用feval函数。
>> z=feval(’sin’,pi*(0:4)/4)
z =
0 0.7071 1.0000 0.7071 0.000
>> z=feval(il_humps,[-1 0 1])
z =
-5.1378 5.1765 16.0000
下面创建一个匿名函数:
>> af_humps=@(x)1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6
af_humps =
@(x) 1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6
>> af_humps(-1:1)
ans =
-5.1378 5.1765 16.0000
>> a=1;b=2;
>> asda=@(x) sin(a*x).*cos(b*x);
>> asda(-1:1)
ans =
0.3502 0 -0.3502
>> fhan={@sin @cos}
fhan =
@sin @cos
>> fhan{1}(1:2)
ans =
0.8415 0.9093