matlab怎么用代码表达汉字

matlab怎么用代码表达汉字,第1张

在菜单选择。

首先找到matlab2014b的上方“预设”按钮,左键点击,进入“预设项”窗口,单击第一项“matlab”,单击出现的“字体”拦运,看到右侧窗口的”字体”选择更改,“仿宋”字体及后面的字体都可以正常显示汉字,选择仿宋字体,最后选择后记得“确定”。

MATLAB和Mathematica、Maple并称为三大数学软件。它州衡者在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位册薯是矩阵,它的指令表达式与数学、工程中常用的形式十分相似。

matlab字符处理

%取子字符串,假设字符串存在ch里面

ch='abc'

kk=ch(2:end)

》bc

%声明字符串向量

A=['''''']

%利用冒号取字符串向量的第二行

A(2;:);

%******************上面是笔记********************

%******************下面是转载的******************

%字符串处理

a=' a'b='b b'c='cccc'm=''

%获取字符串长度

length(a)

%连接两个字符串,每个字符串最右边的空格被裁切

d=strcat(a,c)

length(d)

%连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格

%使与最长字符串相等,会忽略空字符串

e=strvcat(a,b,m)

size(e)

%char连接,空字符串会被空格填满

f=char(a,b,m)

size(f)

%strcmp 比较两个字符串是否完全相等,是,返回真,否则,返回假

%strncmp 比较两个字符串前n个字符是否相等,是指橡,返回真,否则,返回假

%strcmpi 比较两个字符串是否完全相等,忽略字母大小写

%strncmpi 比较两个字符串前n个字符是否相等,忽略字母大小写

%isletter 检虚汪测字符串中每个字符时否属于英文字母

%isspace 检测字符串中每个字符是否属于格式字符(空格,回车,制表,换行符等)

%isstrprop 检测字符每一个字符是否属于指定的范围

a='d sdsdsd 15#'

b=isletter(a)

c=isspace(a)

%字符串替换和查找

%strrep进行字符串替换,区分大小写

% strrep(str1,str2,str3)

% 它把str1中所有的str2字串用str3来替换

%strfind(str,patten) 查找str中是否有pattern,返回出现位置,没有出现返回空数组

%findstr(str1,str2) 查找str1和str2中,较短字符串在较长字符串中出现的位置,没有出现返回空数组

%strmatch(patten,str) 检查patten是否和str最左侧部分一致

%strtok(str,char) 返回str中由char指定的字符串前的部分和之后的部分,

mm='youqwelcome'

[mm1,mm2]=strtok(mm,'q')

% blanks(n) 创建有n个空格组成的字符串

% deblank(str) 裁切字符串的尾部空格

% strtrim(str) 裁切字符串的开头和尾部的空格,制表,回车符

% lower(str) 将字符串中的字母转换成小写

% upper(str) 将字符串中的字母转换成大写

%sort(str) 按照字符的ASCII值对字符串排序

%num2str 将数字转换为数字字符串

%str2num 将数字字符串转换为数字

%mat2str 将数组转换成字符串

%int2str 把数值数组转换为整数数字组成的字符数组

MATLAB提供了大量的字符串函数,包括列在表6.3当中的。

表6.3

字 符 串 函 数

eval_r(string)

作为一个MATLAB命令求字符串的值

eval_r(try,catch)

blanks(n)

返回一个n个零或空格的字符串

deblank

去掉字符串中后拖的空格

feval

求由字符串给定的函数值

findstr

从一个字符串内找出字符串

isletter

字母存在时返回真差逗仔值

isspace

空格字符存在时返回真值

isstr

输入是一个字符串,返回真值

lasterr

返回上一个所产生MATLAB错误的字符串

strcmp

字符串相同,返回真值

strrep

用一个字符串替换另一个字符串

strtok

在一个字符串里找出第一个标记

列在上面的第一个函数eval给MATLAB提供宏的能力。其中,该函数提供了将用户创建的函数名传给其它函数能力,以便求值。它的应用例子包括:

» a=eval_r(' sqrt(2) ')

a =

1.4142

» eval_r(' a=sqrt(2) ')

a =

1.4142

上面的例子演示了函数eval。显然,它们不是计算2的平方根的最简单方法。当被求值的字符串是由子字符串连接而成,或将字符串传给一个函数以求值时,eval非常有用。说明这种用途例子本书的以后会提及。

如果字符串传递到eval不能被辨认,MATLAB提供下列语法:

» eval_r(' a=sqrtt(2) ',' a=[ ] ')

a =

[ ]

这里第二个参量被执行。由于第一个参量有误,即sqrtt不是一个有效的MATLAB函数。这种形式经常被描述为eval_r(try,catch)。

函数feval与eval类似,但在用法上有更多的限制。feval_r(' fun ',x)求由字符串' fun '给定的函数值,其输入参量是变量x。即feval_r(' fun ',x)等价于求fun(x)值。例如,

» a=feval_r(' sqrt ' ,2)

a =

1.4142

函数eval,feval的基本用途限在用户创建的函数内。一般地,feval可求出有大量输入参量的函数值,例如,feval_r(' fun ', x, y, z) 等价于求fun(x, y, z)值。

列在上面表中的许多字符串函数提供了基本的字符串语法分析能力。例如,findstr返回一个在另一个字符串内字符串的起始下标值。

» b=' Peter Piper picked a peck of pickled peppers '

» findstr(b,' ') % find space

ans =

6 12 19 21 26 29 37

» findstr(b,' p ') % find the letter p

ans =

9 13 22 30 38 40 41

» find(b= = ' p ') % for single character searches the find command works too

ans =

9 13 22 30 38 40 41

» findstr(b, ' cow ') % find the word cow

ans =

[ ]

» findstr(b,' pick ') % find the string pick

ans =

13 30

注意这个函数对大小写是敏感的,当不匹配时,返回空矩阵。findstr对字符串矩阵不起作用。

» strrep(b, ' p ', ' P ') % capitalize all p ' s

ans =

Peter PiPer Picked a Peck of Pickled PePPers

» strrep(b, ' Peter ', ' Pamela ') % change Peter to Pamela

ans =

Pamela Piper picked a peck of pickled peppers

正如上面所看到的,strrep执行简单的字符串替代。strrep对字符串矩阵不起作用。

函数strtok找出由特定字符指定的字符串内的标记,空格是缺省限定字符。例如,

» disp(b)

Peter Piper picked a peck of pickled peppers

» strtok(b) % find first token in above string separated by whitespace

ans =

Peter

» [c, r]=strtok(b) % return the remainder of the string array in r

c =

Peter

r =

Piper picked a peck of pickled peppers

» [d,s]=strtok(r) %find the next token by using the previous remainder

d =

Piper

s =

picked a peck of pickled peppers

用空格作为限定符,strtok找出在数组中的单词。strtok对字符串矩阵不起作用。

» [d, s]=strtok(b, ' pP ') %let delimiter be lower or upper case P

d =

eter

s =

Piper picked a peck of pickled peppers

如果提供一个可选的字符串,它的字符是限定符。注意在标记里,不返回限定符,但返回所有限定符之前的字符。也就是,在上面的字符串d = eter末端有一个空格。

MATLAB字符串数组的创建与运算

字符串数组主要用于可视化编程内容,如界面设计和图形绘制。

1.字符串变量的创建

字符变量的创建方法是:在指令窗口中先把待建的字符放在“单引号对”中,再按回车键。注意,该“单引号对”必须在英文状态下输入。这“单引号对”是MATLAB用来识别字符串变量所必须的。如:

>>a='This is an example.'

a =

This is an example.

>>msg = 'You''re right!' %创建带单引号的字符串

msg =

You're right!

2.字符串数组的标识

字符串变量的每个字符(英文字母、空格和标点都是平等的)占据一个元素位,在数组中元素所处的位置用自然数标识。如:

>>b=a(1:4) % 提出一个子字符串

b =

This

ra=a(end:-1:1) % 字符串的倒排

ra =

.elpmaxe na si sihT

又如:

>>A='这是一个算例。'

>>B=size(A) % 符号数组 A 的“大小”

B =

1 7

>>C=A([5 6]) % 提出一个子字符串

C =

算例

3.字符串的ASCII码

字符串的存储是用ASCII码实现的。指令abs和double都可以用来获取串数组所对应的ASCII码数值数组。指令char可把ASCII码数组变为串数组。如

>>d=double(a)

d =

84 104 105 115 32 105 115 32 97 110 32 101 120 97 109 112 108 101 46

>>char(d)

ans =

This is an example.

对字符串ASCII码数组的 *** 作:使字符串中字母全部大写

>>w=find(a>='a'&a<='z')%找出串数组a中,小写字母的元素位置。

>>d(w)=d(w)-32%大小写字母ASCII值差32用数值加法改变部分码值。

>>char(d) %把新的ASCII码翻成字符

ans =

THIS IS AN EXAMPLE.

4.字符串数组的运算

>>Aa=[A,a]

Aa =

这是一个算例。This is an example.

>>name = strcat('Thomas',' R.',' Lee') %连接两个字符串,每个字符串最右边的空格被裁切

name =

Thomas R. Lee

>>D=strvcat('Hello','Yes','No','Goodbye') %利用串 *** 作函数创建多行串数组, 连接多行字符串,每行长度可不等,自动把非最长字符串最右边补空格, 使与最长字符串相等,会忽略空字符串。

D =

Hello

Yes

No

Goodbye

5. 字符串替换和查找

strrep—进行字符串替换,区分大小写

>>strrep(str1,str2,str3) %它把str1中所有的str2字串用str3来替换

strfind(str,patten) %查找str中是否有pattern,返回出现位置,没有出现返回空数组

findstr(str1,str2) %查找str1和str2中,较短字符串在较长字符串中出现的位置,没有出现返回空数组

strmatch(patten,str) %检查patten是否和str最左侧部分一致

strtok(str,char) %返回str中由char指定的字符串前的部分和之后的部分,

6.常用字符串 *** 作函数

blanks(n)—创建有n个空格组成的字符串

deblank(str)—裁切字符串的尾部空格

strtrim(str)—裁切字符串的开头和尾部的空格,制表,回车符

lower(str)—将字符串中的字母转换成小写

upper(str)—将字符串中的字母转换成大写

sort(str)—按照字符的ASCII值对字符串排序

num2str—将数字转换为数字字符串

str2num—将数字字符串转换为数字

mat2str—将数组转换成字符串

int2str—把数值数组转换为整数数字组成的字符数组

7.其他字符串 *** 作函数

strcmp—比较两个字符串是否完全相等,是,返回真,否则,返回假

strncmp—比较两个字符串前n个字符是否相等,是,返回真,否则,返回假

strcmpi—比较两个字符串是否完全相等,忽略字母大小写

strncmpi—比较两个字符串前n个字符是否相等,忽略字母大小写

isletter—检测字符串中每个字符时否属于英文字母

isspace—检测字符串中每个字符是否属于格式字符(空格,回车,制表,换行符等)

isstrprop—检测字符每一个字符是否属于指定的范围.

8.字符串的显示和打印

>>g=’abcd’

>>disp(g)

abcd

>>h=rand(2,2)%产生2*2随机阵

>>s=num2str(h) %把数值数组转换为串数组

s =

0.95013 0.60684

0.23114 0.48598

>>s_s=sprintf('%.10e/n',a) 数位科学记述串,每写一个元素就换行。

s_s =

9.5012928515e-001

2.3113851357e-001

6.0684258354e-001

4.8598246871e-001

>>fprintf('% .5g //',a) %以5位数位最短形式显示。不能赋值用。

0.95013/0.23114/0.60684/0.48598/

>>s_sscan=sscanf(s_s,'%f',[3,2]) %浮点格式把串转换成3*2数值数组。

s_sscan =

0.9501 0.4860

0.2311 0

0.6068 0

///////////////////////////////////////

x = str2mat('36842', '39751', '38453', '90307')

x =

36842

39751

38453

90307

>>x(1,:)

ans =

36842


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12329062.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存