说明:如在测试时请将程序中的中文字符改为西文(部分程序为手写,并未经matlab验证)
2024年春《matlab基础》第一次上机练习与作业。
练习1:脚本文件。
建立一个文件名为 helloworld 的脚本文件,运行该文件时显示出如下文字:
hello world!
i am going to learn matlab
提示: 用 disp 显示字符串,将要显示的字符号串用单引号引起来。如 'this is a string'
练习2:变量。
获取并保存当前的日期与时间。
用函数clock生成一个变量,变量名为start
用size查看start的维数,它是一个行向量还是一个列向量?
start包含什么内容?用help clock查看。
用函数datestr将向量start转换成字符串,得到新的变量,名为startstring
将start与startstring保存为mat 文件,文件名为starttime
在练习1建立的脚本文件 文件中,用load函数导入变量starttime, 并显示如下文字:
i started learning matlab on * start date and time*
练习3:标量。
你将要以指数增长的速度来学习matlab, 将如下内容添加到文件中。
假设你的学习时间是一个常量,为1.5 days,将此时间用秒表示,赋给变量tau
假设课程持续时间为5 days. 将这个时间单位转换为秒,保存在变量endofclass中?
将学到的知识描述为t的函数,函数方程为:
用函数datestr将向量start转换成字符串,得到新的变量startstring
在课程结束时间endofclass,你将学到多少知识?用变量knowledgeatend表示 (指数函数exp)
用变量knowledgeatend,显示如下语句:
at the end of the matlab class, i will know x% of matlab
提示: 将数转换成字符串,用num2str
练习4:向量运算。
计算从课程开始到现在经过的时间,用秒表示。
在中,建立一系列变量,变量名分别为:secpermin, secperhour, secperday,secpermonth(假设每个月30.5天),以及secperyear.
将变量按次序 secperyear,secpermonth, secperday,secperhour, secpermin,1 排列,构成一个行向量,命名为secconversion?
用时钟函数clock生成一个向量currenttime
计算经过的时间elapsedtime,用currenttime与start相减。
通过向量secondconversion 与elapsedtime的数量积运算计算时间t, 显示当前的时间水平,用变量currentknowledge表示。 (
显示如下语句:
at this time, i know x% of matlab
练习5:向量函数。
计算你的学习轨迹。
在中,建立线性时间向量tvec,包含从0到endofclass的10000个样本点。
计算在每个时间点处对应的知识值,仍然用函数。
练习6:向量寻址。
什么时候你将学到50%的matlab知识?.
在向量knowledgevec中,查找最接近0.5的元素所在的位置。
用halftime保存对应的时间。
显示如下语句:
i will know half of matlab after x days
要将halftime用secperday转换成天数。
练习7:绘图。
画出学习的轨迹图?.
在中,打开一个新的图形窗口(figure)
用向量tvec与knowledgevec画出知识轨迹,画图时,将时间单位转换为天。
用图形窗口中的zoom in 查看halftime,与前面计算结果相比较。
clear,clc;
disp('hello world!')
disp('i am going to learn matlab');
start=clock;
startx,starty]=size(start);
if startx>starty
disp('一个行向量')
elsedisp('一个列向量');
endstartstring=datestr(start);
s**e start startstring;
waittime=input('为使程序达到较好的执行效果,请输入程序需要暂停时间(秒):'
state = 0
h = waitbar(0, '请等待。name', 进度条', createcancelbtn',
'state = 1; delete(h); clear h
h1 = findall(h, 'style', pushbutton
set(h1, 'string', 取消', fontsize', 10
for i = 1 : 100
waitbar(i/100, h, [已暂停时间百分比' num2str(i) '
pause(waittime/100);
if state
breakend
endif exist('h') 1
delete(h);
endload starttime
disp('i started learning matlab on * start date and time*')
tau=1.5*24*3600;
endofclass=5*24*3600;
knowledgeatend=1-exp(-tau/endofclass);
disp(['at the end of the matlab class, i will know ',num2str(knowledgeatend*100),'of matlab'])
secpermin=60;
secperhour=3600;
secperday=24*secperhour;
secpermonth=30.5*secperday;
secperyear=12*secpermonth;
secondconversion=[secperyear,secpermonth, secperday,secperhour, secpermin,1];
currenttime=clock;
elapsedtime=currenttime-start;
elapsedtime=elapsedtime.*secondconversion;
currentknowledge=1-exp(-elapsedtime/endofclass);
disp(['at this time, i know ',num2str(sum(currentknowledge)*100),'of matlab'])
tvec=linspace(0,endofclass,1000);
knowledgevec=1-exp(-tvec./endofclass);
halftimeindex=find(abs(knowledgevec-0.5)<1e-3);
halftime=sum(tvec(halftimeindex))/length(halftimeindex)/secperday;
disp(['i will know half of matlab after ',num2str(halftime),'days'])
plot(tvec/secperday,knowledgevec);
xlabel('day');
2024年春《matlab基础》第二次上机练习与作业。
练习1:函数文件。
建立一个文件名为 plotsin 的函数文件,要求:
函数声明为:
functon plotsin(f1)
该函数用于画出频率为的正弦波在区间上的图像。
每个周期含有16个数据点。
function plotsin(f1)
xnum=16*f1;
x=linspace(0,2*pi,xnum);
plot(x,sin(f1*x));
练习2:条件语句。
修改函数plotsin(f1)使之有两个输入变量,形式为plotsin(f1,f2)
如果输入的变量个数为1,执行以前写的绘图命令。否则显示文字'two inputs were given'
提示:输入变量的数目用内置变量名:nargin
function plotsin(f1,f2)
if nargin==1
xnum=16*f1;
x=linspace(0,2*pi,xnum);
plot(x,sin(f1*x));
elseerror('two inputs were given');
end练习3:绘图命令。
修改plotsin中的绘图命令,将数据点类型改为正方形,线形改为红色虚线,线宽为2.设置数据点填充色为黑色(属性名为:linewidth, markerfacecolor)
如果有2个输入变量,新开一个绘图窗口,上下排列,并且激活上面图形窗口。
plotsin(6plotsin(2,3)
function plotsin(f1,f2)
if nargin==1
h1=figure(1);
xnum=16*f1;
x=linspace(0,2*pi,xnum);
Matlab练习作业
一 写出命令,绘制频率为5赫兹的正弦波的波形。函数如下 二 写出命令,绘制如下分段函数的波形。使用的命令与输出的图形粘贴在下面 第一题。t 0 0.01 0.2 y 2 sin 2 pi 5 t plot t,y xlabel t ylabel y title y 2 sin 2 pi 5 t te...
matlab实习作业
专业实训。习题一 输入10个数,求其中最大数和最小数。要求分别用循环结构和调用matlab的max函数 min函数来实现。解 1 循环结构方式。m文件 indata input please input the number 10 maxdata indata 1 mindata indata 1 ...
综合练习作业
选择题。1 马路上积水表面的油膜呈现彩色图样,这是由于 a.光的色散 b.光的衍射 c.光的漫反射 d.光的干涉。2 为纪念爱因斯坦对物理学的巨大贡献,联合国将 年定为 国际物理年 对于爱因斯坦提出的智能方程 e mc2,下列说法中不正确的是。a e mc2表明物体具有能量与其质量成正比。b 根据 ...