MATLAB第一次实验:MATLAB基础

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!
本次实验于毕业设计及毕业论文撰写间隙完成,因此本系列实验报告撰写较慢。同时,也欢迎各位同学踊跃投稿!

一、实验目的

1、理解Matlab数据对象的特点;
2、掌握MATLAB中数组的创建方法,熟悉数组的访问和赋值;
3、熟悉基本的Matlab运算规则;
4、掌握Matlab帮助的使用方法。

二、实验环境

计算机一台(带有MATLAB7.0以上的软件环境)

三、实验内容及步骤

实验课前预习要求:
1.请在实验课前应熟悉实验中需要用到的相关函数的用法。
2.注意对实验中出现的相关函数或变量,请使用doc 函数名或help 函数名查看对应matlab帮助文档和语法,理解其含义,以正确解决实验中的问题。
1、建立以下标量并进行计算:。
1) a = 10 a=10 a=10
2) b = 2.5 ∗ 1 0 23 b=2.5*10^{23} b=2.51023
3) c = 2 + 3 i c=2+3i c=2+3i(i为虚数单位)
4) d = 2 s i n 85 ° 1 + e 2 d=\frac{2sin85°}{1+e^2} d=1+e22sin85°(e为自然数,这里要用到exp,下同)
5) x = 1 1 + e − ( a − 15 ) / 6 x=\frac{1}{1+e^{-(a-15)/6}} x=1+e(a15)/61
6) y = ( a + b 21 ) π y=(\sqrt{a}+\sqrt[21]{b})^{\pi} y=(a +21b )π同时参考sqrt,pi。
2、根据向量特点,选择适合的方式,建立以下向量并进行计算:
1)aVec=[3.1 1 9 2.6]
2)bVec=在这里插入图片描述
3)cVec=[5 4.5 … -4.5 -5 ] (向量中的数值从5到-5,步长为-0.5)。
4) d V e c = [ 1 0 0 1 0 0.01 … 1 0 0.99 1 0 1 ] dVec=[10^0 10^{0.01} … 10^{0.99} 10^1] dVec=[100100.01100.99101] (产生1到10之间的等对数间隔向量,参考logspace,注意向量的长度)。
5) x V e c = e − c V e c 2 / 2. 5 2 xVec=e^{-cVec^2/2.5^2} xVec=ecVec2/2.52,e是自然数。
6) y V e c = ( a V e c T ) 2 + b V e c 2 yVec=\sqrt{(aVec^T)^2+bVec^2} yVec=(aVecT)2+bVec2 , a V e c T aVec^T aVecT表示 a V e c aVec aVec的转置
7) z V e c = log ⁡ 10 ( 1 / d V e c ) zVec=\log_{10}(1/dVec) zVec=log10(1/dVec) log ⁡ 10 \log_{10} log10表示以10为底的对数,参考log10

3、建立以下矩阵:
1)在这里插入图片描述

aMat 一个9×9的矩阵,其元素全为2;(参考ones或zeros)。
2)在这里插入图片描述

bMat是一个9×9的矩阵,除主对角上的元素为[1 2 3 4 5 4 3 2 1]外,其余元素均为0。(参考diag )。
3)在这里插入图片描述

cMat为一个10×10的矩阵,可由1:100的向量来产生(参考reshape)
4)在这里插入图片描述
5)产生一个5×3随机整数矩阵fMat,其值的范围在-3到3之间。(参考rand和floor或ceil或fix)

4、使用题2和题3中所产生的向量和矩阵计算以下等式,注意本题的操作均是使用矩阵运算。注意观察运算前和运算后矩阵大小的变化。
1) x M a t = ( a V e c ⋅ b V e c ) ⋅ a M a t 2 xMat=(aVec·bVec)·aMat^2 xMat=(aVecbVec)aMat2
2) y M a t = b V e c ⋅ a V e c yMat=bVec·aVec yMat=bVecaVec,注意这里 a V e c ⋅ b V e c aVec·bVec aVecbVec与是不一样的
3) z M a t = ∣ ( c M a t ) ∣ ( a M a t ⋅ b M a t ) T zMat=\left|(cMat)\right|(aMat·bMat)^T zMat=(cMat)(aMatbMat)T 这里 ∣ ( c M a t ) ∣ \left|(cMat)\right| (cMat) c M a t cMat cMat所对应行列式的值,参考det。
5、用矩阵左除运算求解线性方程组
在这里插入图片描述
doc inv查询inv函数的功能,试试用该函数求解本题方程
6、完成以下操作(记录指令和执行结果)
(1)求[100,999]之间能被21整除的数的个数。
提示:先利用冒号表达式,再利用find和length函数
(2)建立以字符串向量,删除其中的大写字母。
要求:第(2)题,要求建立的字符串向量为你的班级姓名全拼学号,其中班级为XinXiAnQuan18,姓名全拼首字母大写,如"舒马赫"——Schumacher。
假设某同学为信息181班的老六,学号181000345。对应字符串为: X i n X i 181 L a o L i u 181000345 XinXi181LaoLiu181000345 XinXi181LaoLiu181000345
7、教材P362实验3实验内容1
从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;然后将第一位数与第三位数互换,第二位数与第四位数互换。

四、实验代码

%Knight_Von_Schumacher
%开始答题...
%第一题
a=10;
b=2.5*10^23;
c=2+3i;
d=2*sind(85)/(1+exp(2));
x=1/(1+exp(-(a-15)/6));
y=(sqrt(a)+b^(1/21))^pi;
%第二题
aVec=[3.1 1 9 2.6];
bVec=[2.7;8;2;12];
cVec=5:-0.5:-5;
dVec=logspace(0,1,101);
xVec=exp(-cVec.^2/2.5^2);
yVec=sqrt((aVec)'.^2+bVec.^2);
zVec=log10(1./dVec);
%第三题
aMat=2*ones(9);
bMat=diag([1 2 3 4 5 4 3 2 1]);
cMat=reshape(1:100,[10,10]);
eMat=[-3 -2 0;6 15 8];
fMat=round(-3+6*rand(5,3));
%第四题
xMat=(aVec*bVec)*aMat.^2;
yMat=bVec*aVec;
zMat=det(cMat)*(aMat*bMat)';
%第五题
left=[2 -1 3;2 0 2;4 2 5];right=[1 6 4]';
c=inv(left)*right;
%第六题
num=length(find(rem(100:999,21)==0));
name='Ich_Bin_Knight_Von_Schumacher18103721729';delete=name<'A'|name>'Z';name(delete)
%第七题
number=input('please input number ranging from 1000 to 9999:');
a=rem((number-rem(number,1000))/1000+7,10);
b=rem((rem(number,1000)-rem(number,100))/100+7,10);
c=rem((rem(number,100)-rem(number,10))/10+7,10);
d=rem(rem(number,10)+7,10);
ans=c*1000+d*100+a*10+b;

五、实验要求

1、教材P46,应用题第4小题。
写出完成下列操作的命令
(1)将矩阵A第2~5行中第1、3、5列元素赋给矩阵B。
(2)删除矩阵A的第5号元素。
(3)求矩阵A的大小和维数。
(4)将向量t的0元素用机器零来代替。
(5)将含有12个元素的向量x转换成3*4矩阵。

(1)B=A(2:5,1:2:5);
(2)A[5]=[];
(3)size(A);ndims(A);
(4)x=[0 0 0 0 1;1 2 3 0 0];x(find(x==0))=eps;
(5)y=reshape([1 2 3 4 5 6 7 8 9 0 1 2],3,4)

2、三角函数中sin函数和sind函数的用法有什么区别?举例,如果要求60度的正弦值,应该如何使用这两个函数。
sin(A):要求A为弧度制 sind(A):要求A为角度制
e.g.:计算60度的正弦值:

ans=sin(pi/3)或ans=sind(60)

3、e代表自然数,ln代表自然对数,其对应的Matlab函数是什么,如果要求10为底的对数、2为底的对数需要用什么函数?

exp()、log()、log10()、log2()

4、根据实验结果说明,用whos或who命令查询工作空间变量时,这两个命令查看结果的特点。

  1. who给出的列表只能按变量名的字母顺序排列; whos给出的列表可以按变量名的字母顺序排列,也可以按尺寸、所占字节数等顺序。
  2. who用于列出当前工作空间中所有变量名;whos用于列出当前工作空间中所有变量,以及它们的名字、尺寸(比如一一个矩阵或数组的行列维数)、所占字节数、属性等信息。

5、 自行练习save和load函数的用法。

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight_V_Schumacher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值