MATLAB练习作业 已做

发布 2022-07-04 07:19:28 阅读 8305

说明:如在测试时请将程序中的中文字符改为西文(部分程序为手写,并未经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 根据 ...