Skip to content

Joyful Physics

格软物质 推硬物理

菜单1 菜单1
  • 首页
  • 关于
  • 连载
  • 友链
  • 导航
Expand Search Form

Todd’s Matlab讲义第1讲:向量,函数和作图

瞿立建 2015-10-03

向量

Matlab 中最基本的对象是矩阵,向量是特殊的矩阵。行向量是\[1\times n\]矩阵,列向量是\[m\times 1\]矩阵。输入如下行向量:

 v=[0 1 2 3]

回车,Matlab 将输出此行向量:

v =

     0     1     2     3

输入如下列向量:

u = [9; 10; 11; 12; 13]

按如下方式访问向量的元素:

u(2)

按如下方式改变元素的值:

u(2)=47

按如下方式提取多个连续向量:

u(2:4)

按如下方式将行向量变成列向量,也可以把列向量变成行向量:

w=v'

这个操作称为转置,’称为转置算符。

还可以用如下方法快速建立行向量:

x=-1:0.5:1

另一方法为:

y=linspace(0,1,11)

基本输出格式

如果让输出更紧凑些,可以按如下命令:

format compact

如果要使结果输出更多位小数,输入如下命令:

format long

注意:这不会改变Matlab参与运算的数的位数,只是改变输出结果的小数位数。

作图

根据表格1中的数据,将表格中的数据赋给两个向量:

x = [ 5 20 30 50 55 ]

x =

     5    20    30    50    55

y = [ 0.08 0.015 0.009 0.006 0.0055]

y =

    0.0800    0.0150    0.0090    0.0060    0.0055
T 5 20 30 50 55
$\mu$ 0.08 0.015 0.009 0.006 0.0055

表格1 温度与粘度

输入如下命令可将数据绘成图形:

plot(x,y)

如果想把数据点用符号表示出来,例如:

plot(x,y,'*')
plot(x,y,'o')
plot(x,y,'.')

内置函数

Matlab包含有大量的内置函数,如$\sin()$、$\exp()$,等等,大部分函数的意义从名字一看便知。使用内置函数时,变量放在小括号里。比如:

sin(pi)

这是计算$\sin \pi$的值。

如下命令:

exp(0)

这是计算$e^0$的值。

Matlab内置函数还可以向量为自变量,比如:

x=linspace(0,2*pi,40);
y=sin(x);
plot(x,y)

输出结果为正弦函数在区间$[0,2\pi]$上的图形。

Matlab常用内置函数还有:$\cos( )$, $\tan( )$, $\sinh( )$, $\cosh( )$, $\log( )$ (自然对数), $\log10( )$ (以10为底的对数), asin( ) (反正弦函数), \acos( ), \atan( )。要了解函数细节,可以用help命令查询,比如:

help plot
help sin
help

内联函数

Matlab提供多种方式自定义函数,一种方法是内联函数,这是在命令行窗口定义函数的一种方法。下面就是一个典型的内联函数:

 f = inline('2*x.^2 - 3*x + 1','x')

这就定义了一个函数$f(x)=2x^2-3x+1$。如下计算单个函数值:

f(2.23572)

与内置函数一样,内联函数也可以带入向量,如:

x = -2:.2:2
f(x)

这正是向量化的例子,即用一个向量表示多个数,一次操作向量的所有元素,而非一次处理一个元素,这是Matlab的优势之一。$f(x)$可以处理向量$x$,因为我们用 x.^2 表示 $x^2$。符号.使指数运算符 ^ 可以对向量各个元素做指数运算,比如[-2 -1.8 -1.6].^2运算实为$ [(-2)^2\quad (-1.8)^2 \quad (-1.6)^2 ]$,结果为[4 3.24 2.56]。而[-2 -1.8 -1.6]^2运算实为[-2 -1.8 -1.6][-2 -1.8 -1.6],程序将报错。运算.可用于.^,.*,./,但不需用于乘除标量,也不需用于加法+。

函数图形也可以用 plot 命令得到,如数据作图一样:

plot(x,y)

需要注意的是,这里其实是把函数转换成数据然后作图的。机器作图都需要这一转换步骤。

补充:Matlab R2015a 提示内联函数过时,未来将不支持内联函数。可以采用匿名函数来自定义函数。

匿名函数

输入如下命令可定义一个匿名函数:

afun1 = @(x) sin(x)/x

计算函数值:

afun1(2)

定义多个变量的匿名函数:

 afun2 = @(x,y) (x^2 + y^2 + x*y)

如果需要输入向量作为自变量,注意乘、除、幂运算分别需要用.*,./,.^进行。如:

npdf = @(x) (1/sqrt(2*pi))*exp(-0.5*x.^2)

练习

1 从工程教科书中选取一个数据表格,将数据赋予向量,然后作图,并标记坐标轴和标题。

2 定义内联函数 $g(x) = x + \cos(x^5)$并作图。你得到的图有何问题?如何改善?

分类目录 Todd讲Matlab 标签 anonymous function, inline function, plot, 内联函数, 匿名函数, 向量
Previous: 证明ln2=0 和 2=1
Next: Todd’s Matlab讲义第2讲:Matlab 编程

功能

  • 登录
  • 项目feed
  • 评论feed
  • WordPress.org

近期文章

  • 美国物理学会流体视频大赛获胜视频 2017-10-03
  • 薄膜干涉 2017-04-10
  • 最速降线gif图片 2017-02-19
  • DNA 解链 2016-12-26
  • 生物化学机器DNA 2016-12-26

分类目录

  • Matlab (1)
  • Todd讲Matlab (6)
  • 博客教程 (3)
  • 备课讲义 (27)
    • 光学近代物理备课讲义 (7)
    • 电磁学备课讲义 (20)
  • 教学笔记 (23)
  • 未分类 (2)
  • 物理之外 (2)
  • 物理科普 (3)
  • 理论物理极础 (16)
  • 科学史哲 (6)
  • 科学时评 (31)
  • 科研笔记 (12)
  • 软物质物理 (7)
    • Doi高分子物理导论 (3)
  • 软物质科普 (9)

标签

latex PI random walk 世界一流 人物 假说 偏倚随机行走 凝胶 创新 加速度 势能 吉尔伯特 奥斯特 富兰克林 对称性 导体 导数 库仑定律 感应电动势 拉格朗日量 数学 无规行走 标度理论 梯度 泊松括号 法拉第 波 浓度梯度 理想链 电场 相空间 研究生 科学 科学家 简谐振动 能量守恒 蒲慕明 连续带电体 迭代 随机行走 静电屏蔽 非线性方程 高分子 高斯分布 高斯定理

近期评论

  • 蒲慕明所长在中科院神经科学研究所历年年会上的讲话 – Joyful Physics发表在《论研究生教育——蒲慕明所长在神经所2005年会上的讲话》
  • 术索发表在《磁介质》
  • 瞿立建发表在《友链》
  • taho发表在《磁介质》
  • taho发表在《友链》
2022年八月
日 一 二 三 四 五 六
 123456
78910111213
14151617181920
21222324252627
28293031  
« 10月    

文章归档

  • 2017年十月 (1)
  • 2017年四月 (1)
  • 2017年二月 (1)
  • 2016年十二月 (4)
  • 2016年十一月 (3)
  • 2016年十月 (10)
  • 2016年九月 (10)
  • 2016年八月 (10)
  • 2016年七月 (7)
  • 2016年六月 (8)
  • 2016年五月 (9)
  • 2016年四月 (7)
  • 2016年三月 (6)
  • 2016年二月 (7)
  • 2016年一月 (8)
  • 2015年十二月 (6)
  • 2015年十一月 (6)
  • 2015年十月 (10)
  • 2015年九月 (9)
  • 2015年八月 (9)
  • 2015年七月 (7)
  • 2015年六月 (7)

Joyful Physics © 2022