热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab字符串变命令,【转】Matlab字符串处理

char(S1,S2,…)利用给定的字符串或单元数组创建字符数组double(S)将字符串转化成ASC码形式cellstr(S)利用的给定的字符数组创建字符串单元数组blanks(

char(S1,S2,…)

利用给定的字符串或单元数组创建字符数组

double(S)

将字符串转化成ASC码形式

cellstr(S)

利用的给定的字符数组创建字符串单元数组

blanks(n)

生成一个由n个空格组成的字符串

deblank(S)

删除尾部的空格

eval_r(S) evalc(S)

使用MATLAB解释器求字符串表达式的值

ischar(S)

判断是不是字符串数组

iscellstr(C)

判断是不是字符串单元数组

isletter(S)

判断是不是字母

isspace(s)

判断是不是空格

strcat(S1,S2,…)

将多个字符串水平竖直排列

strvcat(S1,S2,…)

将多个字符串竖直排列

strcmp(S1,S2)

判断字符串是否相等

strncmp(S1,S2,n)

判断前n个字符串是否相等

strcmpi(S1,S2)

判断字符串是否相等(忽略大小写)

strncmpi(S1,S2,n)

判断前n个字符串是否相等(忽略大小写)

strtrim(S1)

删除结尾的空格

findstr(S1,S2)

查找

strfind(S1,S2)

在S1种查找S2

strjust(S1,type)

按照指定的type调整一个字符串数组

strmatch(S1,S2)

查找要求的字符串的下标

strrep(S1,S2,S3)

将字符串S1中出现的S2用S3代替

strtok(S1,D)

查找S1 中的第一个给定的分隔符之前和之后的字符串

upper(S)

将一个字符串成大写

lower(S)

将一个字符串转换为小写

num2str(k)

将数字转换成字符串

int2str(k)

将整数型转换为字符串

mat2str(k)

将矩阵转换为字符串,供eval使用

str2double(S)

将字符串数组转化为数值数组

sprintf(S)

创建含有指定格式的字符串

sscanf(S)

按照指定的控制格式读取字符串

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 =

message: ‘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_r(’sin’,pi*(0:4)/4)

z =

0  0.7071  1.0000  0.7071  0.000

>> z=feval_r(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

str2func()

func2str()

(32) 嵌套函数

如果一个函数包含嵌套函数,则无论是嵌套函数还是住函数,都必须以end结尾:

嵌套函数与子函数的区别:

嵌套出现在主函数声明之后的任意位置,而子函数只能出现在主函数之后。

嵌套可以访问主函数工作区中的任何变量值,而子函数只能通过参数访问主函数工作区的某些变量。

主函数可以访问嵌套函数工作区中的所有变量,而只能够通过子函数的输出访问子函数工作区的某些变量

(33)m文件的调试和剖析

keyboard

mlint

depfun

利用profile可以剖析程序的效率

一种办法:直接打开profile,另外一种办法利用如此下代码:

>> profile on

>> for i=1:100

test(1:100);

end

profile viewer

(34)Matlab数据文件

save and load

save var1 var2 var3

save filename var1 var2

save(‘filename’,’var1’,’var2’,…)

load功能和save相反

vnew=load(‘filename’,’var1’,’var2’)

将变量存在vnew结构体中。

fprintf

>> a=[1 2 3;4 5 6;7 8 9]

a =

1

2  3

4

5  6

7

8  9

>>fid = fopen('exp.txt','w');

fprintf(fid,'%2.0f/n',a);

fclose(fid);

>> type exp.txt

1

4

7

2

5

8

3

6

9

fprintf输出是一列一列的从左到右输出。

>> dlmwrite('eg2.dat',a,'/n');

>> type eg2.dat

1

2

3

4

5

6

7

8

9

fprintf输出是一行一行的从上到下输出。

文件的读和写

clc

clear all

fid1 = fopen('F:/example/1.txt','r');

a=fgetl(fid1);

fclose(fid1);

fid2 = fopen('F:/example/2.txt','a');

fprintf(fid2,'%s/n',a);

fclose(fid2);

type F:/example/2.txt%显示文本的内容

fprintf(fid,'%s/r/n',x); %的情况下就可以把数据输出的文件并且换行



推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
  • 本文介绍了在Go语言中可见性与scope的规则,包括在函数内外声明的可见性、命名规范和命名风格,以及变量声明和短变量声明的语法。同时,还介绍了变量的生命周期,包括包级别变量和局部变量的生命周期,以及变量在堆和栈上分配的规则和逃逸分析的概念。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
author-avatar
王文大博士_924
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有