《matlab语言》第3次作业(字符串,单元数组和结构体)
专业: 海洋技术(海洋测绘方向) 姓名: 张体强学号: 1026222
1、如何将一个char 数据类型的向量转化为相应的double 型数据类型的数据向量。
从式1 到8,判断这些语句是否正确。如果它们正确,那么将产生什么结果?这题不要在电脑中做。
1. str1 = this is a test! '
str2 = this line, too.';
res = strcat(str1, str2);
3. str1 = this is a test!';
str2 = this line, too.';
res = str1; str2];
4. str1 = this is a test!';
str2 = this line, too.';
res = strvcat(str1, str2);
5. str1 = this is a test!';
str2 = this line, too.';
res = strncmp(str1, str2, 5);
6. str1 = this is a test!';
res = findstr(str1, 's');
7. str1 = this is a test!';
str1(4:7) =upper(str1(4:7));
8. str1 = this way to the egress.';
str2 = this way to the egret.';
res = strncmp(str1, str2);
解:把char型变为double我们用函数str2num()函数。
1:把两个字符串连接起来,res =this is a test!this line, too.
3:错误, 号中的表达式中的所有行必须有相同的列数。
4: res =this is a test!
this line, too.
5:结果为1,此函数表示比较两个字符的前5个字符是否相同,相同就返回1,否者为0
6:res = 4 7 13 表示找出s出现的位置(索引值)
7:str1 =this is a test! 表示把第4到7那几个字母变为大写。
8:错误,没有给比较的参数。
2、编制一个程序,该程序将接受用户输入的任何字符串,并查找在这个字符串中的某个指定字符出现的次数。
答:例如我要找处字符a;a= %定义程序都能接受的字符。
s=ceill2mat[a]
d=find(s== a’) 找出字符a
x=length(d这就是要求的次数。
3、编制一个程序,使得改程序接受用户输入的字符串,并将该字符串按升序排列并打印出来。
答:例如:a=’cfdjkhk’
b=a(:,end:-1:1) %逆序输出。
4、编制一个程序,使得改程序接受用户输入的字符串如’shanghai ocean university’,并将该字符串每个单词第1个字母大写,其余不变。
答:a=’shanghai ocean university’
a(1)=upper(a(1))
b=find(a==
a(b+1)=upper(a(b+1))
第一步:首字母大写。
第二部:找出空格。
第三部:各个单词首字母。
5、创建 2×2 单元数组,第 个元素为字符串,第三个元素为整型变量,第四个元素为双精度(double)类型,并将其用图形表示。
> a='1'a =
> b=int8(0)b =
> c='0'c =
> d=1d =
> m=[a b;c d]
6、创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、四门课程成绩等。然后使用该结构体对一个班级的学生成绩进行管理,如计算总分、平均分、排列名次(按总分)等。(姓名自己收集,分数随机产生等,输入大约10位同学材料)。
解:student(1).no=1026220;student(1).name='joggn';student(1).score=[86;91;56;77]
student(2).no=1026221;student(2).name='john';student(2).score=[86;91;56;65]
student(3).no=1026222;student(3).name='johdn';student(3).score=[86;91;56;76]
student(4).no=1026223;student(4).name='jowhn';student(4).score=[86;91;56;56]
student(5).no=1026224;student(5).name='johgn';student(5).score=[86;91;56;76]
student(6).no=1026225;student(6).name='joghn';student(6).score=[86;91;56;88]
student(7).no=1026226;student(7).name='joshn';student(7).score=[86;91;56;66]
student(8).no=1026227;student(8).name='jodhn';student(8).score=[86;91;56;33]
student(9).no=1026228;student(9).name='joshn';student(9).score=[86;91;56;77]
student(10).no=1026229;student(10).name='jn';student(10).score=[86;91;56;99]
student=[student(1);student(2);student(3);student(4);student(5);student(6);student(7);student(8);student(9);student(10)]
计算成绩总和方法:如计算student(1)的总成绩:sum(student(1).score)
计算均分:如student(1)的均分:mean(student(1). score)其他均可求出。
7、如果value = pi, 请填写输出结果。
1) fprintf(‘value = 4.3f’, valuevalue = 3.142
2) disp(['value = int2str(valuevalue = 3
8、建立一个字符串向量,然后对该向量做如下处理:
1) 取第1~5个字符组成的子字符串。
2) 将字符串倒过来重新排列。
3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。
4) 统计字符串中小写字母的个数。
答:str=’asdhjgjhgsyjh’
b=str(1:5)
c=str(:,end:-1:1)
m=find(str>=’a’&str<=’z’)
length(m)
9、a定义如下,首先确定这些表达是否正确,如果正确将会产生什么结果,如果错误,请解释原因。
a = 1 2 3; 4 5 6; 7 8 9]
a(1, 2) =
a = i;
a = a – a(2, 2)
1) a(2, 2)
结果= [3x3 double]
2) 2*a(1,1)
错误,由于a(1,1)是个元胞。
3) a结果 =
取出具体的东西。
matlab作业
2011029170002王柳。a 一个问题的病态性如何,与求解它的算法有关系。错 b 无论问题是否病态,好的算法都会得到它好的近似解。错 c 计算中使用更高的精度,可以改善问题的病态性。错 d 用一个稳定的算法计算一个良态问题,一定会得到它好的近似解。对 e 浮点数在整个数轴上是均匀分布。错 f ...
matlab作业
电子与通信工程学院。通信系统 实验报告。2013 2014 学年第1学期。调频 fm 系统调制解调 专业 通信工程。班级 通信111 班。学号 姓名 指导教师姓名陈多瑜。2013年 11 月日。1.频率调制或调频 fm 1 设调制信号为m t 调频信号的数学表达式为。例如 m t 的时域波形为。m ...
matlab作业
一,编写程序,完成当输入一个变量时求其阶乘,输入两个变量时求其阶乘之和,输入三个变量时输出错误。程序如下 clc disp 按以下提示输入变量个数 1至3 及其内容,无变量则直接回车结束 n input 变量个数n a input 变量a b input 变量b c input 变量c if n 1...