matlab实验作业(数据类型,常用函数,导入外部文件)

实验一 MATLAB环境与运算基础

一、实验目的

掌握 MATLAB环境与基本操作;
掌握MATLAB常见数据类型的创建、表示和引用;
熟悉MATLAB数据类型的各种运算与常用函数;
熟悉导入外部数据文件创建变量。

二、实验原理

MATLAB环境与基本操作:命令窗口、WorkSpace、当前文件夹和帮助命令与窗口;
MATLAB数据类型及其对应的常用操作函数:数值型、字符与字符串、日期和时间、分类数组、表、结构体和元胞数组;
MATLAB运算:线性代数计算,+(加),-(减),(乘),/(除),^(乘幂);点运算,.(点乘),./(点除),.^(点乘幂);逻辑运算;

MATLAB常用函数:初等数学函数,取整函数和矩阵操作运算的常用函数reshape、diag、sum、mean等;
读取外部文件数据的函数:readmatrix,readtable,readvars,readcell,及其选项设置。

三、实验内容

1.利用MATLAB的帮助系统分别查询inv、plot、max、round等函数的功能和用法。
help inv
help plot
help max
help round

2.求下列表达式的值:
(1) (2),其中

z1=2sind(85)/(1+exp(2))
x=[2,1+2i;-0.45,5]
z2=(1/2)
log(x+sqrt(1+power(x,2)))

    3.写出完成下列操作的命令:
    (1)建立3阶单位矩阵;
    (2)建立5*5随机矩阵A,其元素为[100,200]范围内的随机整数;
    (3)产生均值为1,方差为0.2的50个正态分布的随机数;
    (4)产生和A同样大小的全1矩阵;
    (5)将矩阵A的对角线元素加30;
    (6)从矩阵A提取对角线元素,并以这些元素构成对角阵B。
eye(3)
A=int32(100+(200-100)*rand(5,5))
Y=1+sqrt(0.2)*randn(5,10)
ones(size(A))
int32(diag([30,30,30,30,50]))+A
B=diag(diag(A))
    4.已知:
                    
    求下列表达式的值:
    (1),
    (2),的元素与的对应元素相乘
    (3),的每个元素立方
    (4),
    (5)与分别为与按列和按行合并后的矩阵
    (6)为的第2、3行,第2、3列,与的第1,2行,第1,2列,按列合并后的
A=[12,34,-4;34,7,87;3,65,7]
B=[1,3,-1;2,0,3;3,-2,7]
C11=A+6*B
I=eye(3)
C12=A-B+I
C21=A*B
C22=A.*B
C31=A^3
C32=A.^3
C41=A*inv(B)
C42=inv(A)*B
C51=[A B]
C52=[A;B]
C6=[A(2:3,2:3) B(1:2,1:2)]
    5.金庸的武侠小说引人入胜,本题第一行代码可以提取《天龙八部》的文本,请回答以下问题:
    (1)小说《天龙八部》一共有多少个自然段(提示:段落之间通常用回车符'\r'分隔)?
    (2)《天龙八部》男主角有段誉与乔峰之争,请问该小说分别包含段誉和乔峰的段落有多少个?
    (3)段誉与乔峰同时出现的段落有多少个?str = extractFileText("tianlongbabu.txt",'Encoding','UTF-8');
str = extractFileText("tianlongbabu.txt",'Encoding','UTF-8');
str=strsplit(str,"\r")
sum(contains(str,'段誉'))
sum(contains(str,'乔峰'))
sum(contains(str,'段誉')&contains(str,'乔峰'))
     6.创建以下变量并计算:
     (1)创建分类数组存储被观测者的国籍:uk,us,no,au,uk,us,us;
     (2)创建结构体student,存储以下数据:
                Name    Sex    Age    Score
                Liming    F       30       80,78,92,84
    (3)在student中添加学生:Yangle, M, 30, [85,68,87,92]
    (4)计算学生Liming与Yangle的平均成绩
state=["uk","us","no","au","uk","us","us"];
state=categorical(state)
student(1).Name='Liming'; student(1).Sex='F'; student(1).Age=30; student(1).Score='80,78,92,84'
student(2).Name='Yangle';student(2).Sex='M';student(2).Age='30';student(2).Score=['85,68,87,92']
(student(1).Score+student(2).Score)/2
     7.文件e17.txt存储了一个矩阵的数据,请做以下操作:
    (1)读取文件e17.txt的数据到MATLAB中,并存入矩阵A中;
    (2)提取A矩阵,生成以下子矩阵:
        为A的第1,2行,第1,2,3列;为A的第1,2行,第4,5列;
        为A的第1,2行,第6列;为A的第3行,第1,2,3列;
        为A的第3行,第4,5列;为A的第3行,第6列;
    (3)将A矩阵转换成的元胞数组,对应元素与(2)题中提取的子矩阵相同。
A=readmatrix('e17.txt')
A11=A(1:2,1:3),A12=A(1:2,4:5),A13=A(1:2,6),A21=A(3,1:3),A22=A(3,4:5),A23=A(3,6)
C=mat2cell(A,[2,1],[3,2,1])
     8.文件Animals2.csv记录了65个物种的躯干(body,kg)和脑(brain,g)的重量,请做以下操作:
    (1)以MATLAB表的类型导入Animals2.csv中的数据,指定行名为动物名称,指定变量名为body和brain,并指定它们的单位,展示前三行数据;
    (2)在表中添加变量ratio,其值等于脑与躯干的重量比并取自然对数后的值;
    (3)提取Human、Cow和African elephant的数据记录;
    (4)提取ratio超过3的数据记录?
T=readtable('Animals2.csv','Delimiter',',',"ReadRowNames",true,"ReadVariableNames",true,'Format','%s%f%f','TextType',"string");
T(1:3,:)
T.ratio=[log(T.brain./T.body)]
T3=T({'"Human"','"Cow"','"African elephant"'},:)
k=find(T.ratio>3.0);
T.ratio(k)
 9.文件detail.csv记录了某餐厅8月份的点餐情况,请做以下操作:
(1)以MATLAB表的类型导入detail.csv中的detail_id(流水号),order_id(订单号),dishes_name(菜名),counts(数量),amounts(单价),place_order_time(下单时间)等变量,其中文本数据用string类型;
(2)将place_order_time变量转换成datetime类型,格式为yyyy-MM-dd HH:mm:ss,并展示前三行数据记录;
(3)计算周一、周二、...周日的平均消费额。
T=readtable('detail.csv','Delimiter',',',"ReadRowNames",false,"ReadVariableNames",true,'TextType',"string")
T.place_order_time(1:2557)=datetime(T.place_order_time(1:2557),"InputFormat","yyyy/MM/dHH:mm:ss");
T.place_order_time(2558:10037)=datetime(T.place_order_time(2558:10037),"InputFormat","yyyy/MM/ddHH:mm:ss");
T.place_order_time(1:3,:)
T.money = T.counts.*T.amounts;
%ave = sum(T.money)/height(T);
T.weekday = weekday(T.place_order_time);
for i=1:7
    m = find(T.weekday==i);
    average = sum(T.money(m))/size(T.money(m),1);
    fprintf("周%d的平均消费额是%.2f元\n",i,average);
end
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352