matlab数组包含字符串,matlab三大重要数组之字符串数组

字符串数组在matlab中尤其重要,很多字符串之间的连接通过简单的字符串操作就可以实现。

字符串的创建方式:在命令窗口中,先把待建立的字符放在“单引号对”中,再按enter。注意,单引号对必须是英文状态下输入,单引号对的作用时matlab用来识别送来内容“身份”(是变量名、数字等)所必须的。

实例1:数值量与字符串的区别

>> a=12345.6789

a =

1.2346e+04

>> class(a) %判别数据类别

ans =

double

>> a_s=size(a) %确定数组的规模

a_s =

1 1

>> b='S'

b =

S

>> class(b)

ans =

char

>> b_s=size(b)

b_s =

1 1

>> whos %列出工作内存中的变量细节

Name Size Bytes Class Attributes

a 1x1 8 double

a_s 1x2 16 double

ans 1x4 8 char

b 1x1 2 char

b_s 1x2 16 double

实例2,串的基本属性、标识和简单操作

1)创建串数组:直接键入,赋给变量即可。

>> a='This is an example.'

a =

This is an example.

2)串数组的大小:在以上赋值后,变量a就是一个串数组,串数组中每个字符(每个都算)占据一个元素位。串数组的大小可以用下面的命令获得:

>> size(a)

ans =

1 19

3)中文字符串数组:键入时注意单引号对仍然要在英文状态下输入,其他没有什么。

>> A='这是算例。'

A =

这是算例。

4)字符串的相互连接:字符串的这个功能应该会很有用!

>> ab=[A(1:4),'a.1-2',A(5)] %字符串数组也能援引

ab =

这是算例a.1-2。

实例3,实现数值向字符串转换的函数int2str,num2str。

1)int2str把整数数组转换成串数组(非整数将被四舍五入之后再进行转换)

>> A=eye(2,4);

>> A_str=int2str(A) %转换成2*10串数组。

A_str =

1 0 0 0

0 1 0 0

>> size(A) %数值数组的规模很容易理解

ans =

2 4

>> size(A_str) %字符串数组之所以显示每行10个,是因为每两个数字字符之间的有两个间隔。

ans =

2 10

字符串数组数字之间两个间隔,可以通过查看每一个字符串的元素得知。

>> A_str(1,1)

ans =

1

>> A_str(1,2)

ans =

>> A_str(1,3)

ans =

>> A_str(1,4)

ans =

0

>> A_str(1,5)

ans =

>> A_str(1,6)

ans =

>> A_str(1,7)

ans =

0

>> A_str(1,8)

ans =

>> A_str(1,9)

ans =

>> A_str(1,10)

ans =

0

2)num2str把非整数数组转换为串数组(常用于图形中数据点的标识)

>> rng default %默认全局随机流操控,rng的用法后续会专门研究一下

>> B=rand(2,4); %生成数值矩阵

>> B3=num2str(B,3) %保持3位有效数字,转换为串

B3 =

0.815 0.127 0.632 0.278

0.906 0.913 0.0975 0.547

实例4,在matlab中计算生成的图形上标出图名和最大值点坐标

>> clear

>> a=2; %设置衰减系数

>> w=3; %设置振荡频率

>> t=0:0.01:10;

>> y=exp(-a*t).*sin(w*t); %计算函数值,产生函数数组

>> [y_max,i_max]=max(y); %找最大值元素位置,从下面结果可以看出,y_max是对应的y值,而i_max则是以0.01为步长对应的位置

y_max =

0.4321

i_max = %最大值对应的是以0.01为步长的第34个位置

34

>> t(i_max) %通过位置可以计算出实际的x坐标

ans =

0.3300

>> t_text=['t=',num2str(t(i_max))] %将横坐标数值转换为字符串

t_text =

t=0.33

>> t_text=['t=',num2str(t(i_max))];

>> y_text=['y=',num2str(y_max)]; %将纵坐标数值转换为字符串

>> max_text=char('maximum',t_text,y_text); %生成标志最大值点的三行字符串

>> tit=['y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)']; %生成图名的标题

>> plot(t,zeros(size(t)),'k') %画出纵坐标为0的基准线,黑色

>> plot(t,zeros(size(t)))

>> hold on

>> plot(t,y,'b')

>> plot(t(i_max),y_max,'r.','MarkerSize',20) %用大红点标出最大值点

>> text(t(i_max)+0.3,y_max+0.05,max_text) %在图上书写最大值点的数据值,+0.3和+0.05的目的是将文字偏置放置

>> title(tit),xlabel('t'),ylabel('y')

>> hold off

802611b20b663b3a266d0b32382d310d.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值