代码改变世界

Matlab 字符串 单元数组 结构体

2022-04-05 17:41  jym蒟蒻  阅读(726)  评论(0编辑  收藏  举报

一、实验任务和目的

  1. 掌握Matlab的字符串常用函数及其操作方法。
  2. 掌握Matlab的结构体的基本操作方法。
  3. 掌握Matlab的元胞数组的基本操作方法。
    二、实验内容
  4. 字符串数组Str=[‘hopes, dreams, hold up, old up’],查找’O’出现的次数和位置。
  5. 现有三个字符串变量s1=“i”,s2=“love”,s3=“matlab7.1”,利用字符串处理函数,将其用空格连接在一起,并字母转换为大写,并将7.1替换为2016a。
  6. Str=’ 1 The existing research is about location tracking either completely indoor or altogether on open air 2 by utilizing various sensors and procedures based on inter-networking or internet of things.’,对该字符串做如下处理:
    (1)判断字符串中每个单词的首字母是否大写,若不是则将其修改为大写,其他字母为小写。
    (2)统计字符串中的数字和字母的个数。
    (3)将字符串中间的空格和数字删除,所有字母倒过来重新排序。
  7. 创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。然后使用该结构体对一个班级的学生的成绩进行管理,如计算总分、平均分、排列名次等。
  8. 创建一个2X2的元胞数组,第1、2个元素为字符串,第3元素为整型,第4元素为双精度类型,并将其用图形表示。

三、实验过程和结果

  1. 字符串数组Str=[‘hopes, dreams, hold up, old up’],查找’O’出现的次数和位置。
>> Str=['hopes, dreams, hold up, old up'];
p=findstr(Str,'O')

p =

     []

>> length(p)

ans =

     0

2 . 现有三个字符串变量s1=“i”,s2=“love”,s3=“matlab7.1”,,并字母转换为大写,并将7.1替换为2016a。

>> s1='i';
>> s2='love';
>> s3='matlab7.1';
>> s4=strcat(s1,32,s2,32,s3);
>>  k=find(s4>='a'&s4<='z');
>> s4(k)=s4(k)-'a'+'A';
>> s4

s4 =

I LOVE MATLAB7.1

>> strrep(s4,'7.1','2016a')

ans =

I LOVE MATLAB2016a

3 . Str=’ 1 The existing research is about location tracking either completely indoor or altogether on open air 2 by utilizing various sensors and procedures based on inter-networking or internet of things.’,对该字符串做如下处理:
(1)判断字符串中每个单词的首字母是否大写,若不是则将其修改为大写,其他字母为小写。

>> Str=' 1 The existing research is about location tracking either completely indoor or altogether on open air 2 by utilizing various sensors and procedures based on inter-networking or internet of things.';
k=findstr(Str,' ');
l=length(k);
for j=1:l
if(Str(k(j)+1)>='a'&Str(k(j)+1)<='z')
Str(k(j)+1)=Str(k(j)+1)-'a'+'A';
end
end
>> Str

Str =

 1 The Existing Research Is About Location Tracking Either Completely Indoor Or Altogether On Open Air 2 By Utilizing Various Sensors And Procedures Based On Inter-networking Or Internet Of Things.

(2)统计字符串中的数字和字母的个数。

>> Str=' 1 The existing research is about location tracking either completely indoor or altogether on open air 2 by utilizing various sensors and procedures based on inter-networking or internet of things.';
>> k=find(Str>='0'&Str<='9');
>> m=find(Str>='a'&Str<='z');
>> length(k)

ans =

     2

>> length(m)

ans =

   162

(3)将字符串中间的空格和数字删除,所有字母倒过来重新排序。

>> Str=' 1 The existing research is about location tracking either completely indoor or altogether on open air 2 by utilizing various sensors and procedures based on inter-networking or internet of things.';
S=strrep(Str,' ','')
k=find(S>='0'&S<='9');
S(k)='';
revch=S(end:-1:1)

S =

1Theexistingresearchisaboutlocationtrackingeithercompletelyindoororaltogetheronopenair2byutilizingvarioussensorsandproceduresbasedoninter-networkingorinternetofthings.


revch =

.sgnihtfotenretnirognikrowten-retninodesabserudecorpdnasrosnessuoiravgnizilituybrianeponorehtegotlaroroodniyletelpmocrehtiegnikcartnoitacoltuobasihcraesergnitsixeehT

 

5 创建一个2X2的元胞数组,第1、2个元素为字符串,第3元素为整型,第4元素为双精度类型,并将其用图形表示。

>> A=cell(2,2);
>> A(1,1)={'i love'};
>> A(2,1)={'you'};
>> A(1,2)={int16(128)};
>> A(2,2)={double(16)};
>> cellplot(A)

 

四、实验总结和心得
掌握了字符串的查找,连接,删除,倒置,替换等一系列操作
掌握了结构数组和元胞数组的用法