回归与曲线拟合
我们经常需要把观测到的数据表达为函数,假如有如下的对时间的观测:
t = [0 .3 .8 1.1 1.6 2.3]’;
y = [0.5 0.82 1.14 1.25 1.35 1.40]’;
plot(t,y,’o’),
grid on
多项式回归
由图可以看出应该可以用多项式来表达:y=a0+a1*t+a2*t^2
系数a0,a1,a2可以由最小平方拟合来确定,这一步可由反除号"\"来完成
解下面的三元方程组可得:
X = [ones(size(t)) t t.^2]
X =
1.0000 0 ...
数据分析和统计
面向列的数据集数据被保存在一个称为count.dat的文件中.
11 11 9
7 13 11
14 17 20
11 13 9
43 51 69
38 46 76
61 132 186
75 135 180
38 88 115
28 36 55
12 12 14
18 27 30
18 19 29
17 15 18
19 36 48
32 47 10
42 65 92
57 66 151
44 55 90
114 145 257
35 58 68 ...
MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization)。本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制、列印及存档。
plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线:
close all; x=linspace(0, 2*pi, 100); % 100个点的x座标
y=sin(x); % 对应的y座标
plot(x,y);
小整理:MATLAB基本绘图函数
plot:...
MATLAB 编程技巧
这里只介绍加快MATLAB程序编程效率的建议,其他内容请参见作者著作。
因为 MATLAB 语言是一种解释性语言,所以有时 MATLAB 程序的执行速度不是很理想。这里将依照作者十多年的实际编程经验给出加快 MATLAB 程序执行速度的一些建议和体会。
尽量避免使用循环:循环语句及循环体经常被认为是~MATLAB 编程的瓶颈问题。改进这样的状况有两种方法:(1) 尽量用向量化的运算来代替循环操作。我们将通过如下的例子来演示如何将一般的循环结构转换成向量化的语句。〖例3.19〗考虑下面无穷级数求和问题:如果我们只求出其中前有限项,比...
MATLAB 函数编写方法与应用
所谓 MATLAB 程序,大致分为两类:M 脚本文件 (M-) 和 M 函数 (M-), 它们均是普通的 ASCII 码构成的文件。M 脚本文件中包含一族由 MATLAB 语言所支持的语句,它类似于 DOS 下的批处理文件,它的执行方式很简单,用户只需在 MATLAB 的提示符 >> 下键入该 M 文件的文件名,这样 MATLAB 就会自动执行该 M 文件中的各条语句,并将结果直接返回到 MATLAB 的工作空间。M 函数格式是 MATLAB 程序设计的主流,一般情况下, 不建议您使用 M 脚本文件格式编程。
MATLAB ...
MATLAB 的语句流程与控制
作为一种常用的编程语言,MATLAB 支持各种流程控制结构,如循环结构、条件转移结构、客观结构等另外 MATLAB 还支持一种新的结构 --- 试探结构。
循环语句有两种结构: for ... end 结构和 while ... end 结构。 这两种语句结构不完全相同,各有各的特色。for ... end 语句通常的调用格式为:
for 循环变量=s1:s3:s2 循环体语句组end
注意,这里的循环语句是以 end 结尾的,这和 C 语言的结构不完全一致。
〖例〗 如果用户想由 MATLAB 求出 1+...
变量的运算
(1) MATLAB 变量的代数运算
如果给定两个矩阵 A 和 B, 则我们可以用 A+B, A-B, A*B 可以立即得出其加、减和乘运算的结果。若这两个矩阵数学上不可以这样运算,则将得出错误信息,并终止正在运行的程序。
在 MATLAB 下,如果 A 和 B 中有一个是标量,则可以无条件地进行这样的运算。MATLAB 不介意这些变量是纯实数还是含有虚部的复数。
矩阵的除法实际上就是线性方程的求解,如 Ax=B 这一线性方程的解即为 x=inv(A)*B, 或更简单地 x=A\B。这又称为矩阵的左除,而 x=B/A 称为矩阵的右除。...
MATLAB 支持的数据结构
MATLAB 语言的赋值语句有两种:
变量名 = 运算表达式
[返回变量列表] = 函数名(输入变量列表)
MATLAB 支持变量和常量,其中 pi 为圆周率 p, 更重要的,MATLAB 支持 IEEE 标准的运算符号,如 Inf 表示无穷大,NaN (Not a Number) 为 0/0, 0*Inf 或 Inf/Inf 等运算结果。MATLAB 变量名应该由字母引导,后面可以跟数字、字母或下划线等符号。MATLAB 是区分变量名字母大小写的。
(1) 矩阵
MATLAB 最基本的数据结构是复数矩阵。...
MATLAB 特色举例
考虑两个矩阵 A 和 B 的乘积问题,在 C 语言中要实现两个矩阵的乘积并不仅仅是一组双重循环的问题。双重循环当然是矩阵乘积所必需的,除此之外要考虑的问题很多。例如:A 和 B 有一个是复数矩阵怎么考虑;其中一个是复数矩阵时怎么考虑;全部是实系数矩阵时又怎么管理;这样就要在一个程序中有 4 个分支,分别考虑这 4 种情况。然后还得判断这两个矩阵是否可乘。而考虑两个矩阵是否可乘也并不仅仅是判断 A 的列数是否等于 B 的行数这么简单。其中一个若为标量,则它们可以无条件地相乘。其中有标量时又得考虑实数与复数的问题等。所以说,没有几十...