DHU MATLAB experiment note<2>

本文介绍了Matlab中的函数定义、循环语句及图形绘制等基础知识。包括如何定义和调用函数,使用for和while循环,以及如何利用plot和fplot进行二维图形绘制。并通过具体实例展示了各种语法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

 

1,定义函数

2,循环语句 

 分别用for和while循环结构编写程序,求出

 计时函数:

3,plot画图

1,2-D line plot

 2,fplot绘制函数或表达式

1,fplot()

2,fplot(funx,funy)

例题

隐函数绘图


1,定义函数

三种定义方式

//%以定义average函数举例
%1
function y= average(x);//x must be a vector
y=sum(x)/length(x);

>>z=1:99
average(z)
>>ans=50
//2 定义可以output mean and standard deviation的函数
function [m,s]=fun_name(x)
n=length(x);
m=sum(x)/n;
s=sqrt(sum((x-m).^2/n);
//call the function from the command line
>>values=[somenumbers...];
[m,s]=fun_name(values)

//define 2 functions in 1 file(and the file name is fun1.m)
function [m,s]=fun_name(x)
n=length(x);
m=average(x)/n;    
s=sqrt(sum((x-m).^2/n));//just use "func. average" in fun. two
end
function y= average(x)
y=sum(x)/length(x);
end
//ATTN average is a local function, only available to other functionswithin the same file

1. (简答题)1. 设x为一个长度为n的数组,编程求下列均值和标准差

 

并就x=( 81, 70, 65,51, 76, 66, 90, 87, 61, 77)计算。

 

 函数段

function [xbar,s]=ex2_1(x)

n=length(x);

xbar=sum(x)/n;

s=sqrt((sum(x.^2)-n*xbar^2)/(n-1));

2,循环语句 

两类1,for 2,while

3. 用循环语句形成Fibonacci数列

并验证极限

(提示:计算至两边误差小于精度

)

clear; 

F(1)=1;F(2)=1;k=2;x=0; %这里取x=0的目的是保证后面abs(x-a)>e成立

e=1e-8; a=(1+sqrt(5))/2; 

while abs(x-a)>e

   k=k+1;F(k)=F(k-1)+F(k-2); x=F(k)/F(k-1);

end 

a,x,k 

 分别用for和while循环结构编写程序,求出

 

并考虑一种避免循环语句的程序设计,比较不同算法的运行时间。

 

 

 计时函数:

tic;toc

clc;clear;
tic;
s=0;

for i=1:10^6

  s=s+(3^(1/2))/2^i;

end

  s
  toc

 Elapsed time is 0.072023 seconds.

tic;

s=0;i=1;

while i<=1000000

   s=s+sqrt(3)/2^i;i=i+1;

end

s,

toc

 Elapsed time is 0.077023 seconds.

tic;

s=0;

i=1:1000000;

s=sqrt(3)*sum(1./2.^i);

s

toc

Elapsed time is 0.012778 seconds.

结论:非循环语句运行时间远比循环语句快 

3,plot画图

1,2-D line plot

Syntax about "plot"

plot(Y)
plot(X1,Y1,...,Xn,Yn)
plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec)
plot(...,'PropertyName',PropertyValue,...)
plot(axes_handle,...)       %坐标区
h = plot(...)

常用PropertyName:color,linetype

 

 

 

5. 假定某天的气温变化记录如下表,试作图描述这一天的气温变化规律。

 

clear

time=0:1:24;

tem=[15,14,14,14,14,15,16,18,20,22,23,25,28,31,32,31,29,27,25,24,22,20,18,17,16];

plot(time,tem)

 

 

 2,fplot绘制函数或表达式

1,fplot()

e.g
>>fplot(@(x) sin(x))
默认interval[-5 5]

2,fplot(funx,funy)

fplot(ax,funx,funy,tinterval,LineSpec,Name,Value)
fp = fplot(___)
[x,y] = fplot(___)

例题

6. 作出下列函数图象

(1) 曲线

 (要求分别使用plot或fplot完成)

(2) 椭圆 

 

%(1) 

x=-2:0.1:2;

y=x.^2.*sin(x.^2-x-2); 

plot(x,y)

y=inline('x^2*sin(x^2-x-2)');
% or y=(x.^2).*sin(x.^2-x-2);


fplot(y,[-2 2])

 

 

%2
t=linspace(0,2*pi,100); %注意步长取法,不要简单用t=0:0.1:2*pi,否则造成椭圆缺口

x=2*cos(t);y=3*sin(t); plot(x,y)

%2
ezplot('(x.^2)./4+(y.^2)./9 = 1')

隐函数绘图

 2013a像fimplicit这种函数就没办法用

Cuz that function was introduced in release R2016b (so sad)

所以我们只能用ezplot或者手动转化成参数方程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值