% “%”为注释符
% MATLAB
%
% MATLAB是一种科学计算语言。它集成了计算,可视化和编程于一个易用的环境中,在此
% 环境下,问题和解答都表达为我们熟悉的数学符号。典型的应用有:
%
% * 数学和计算
% * 算法开发
% * 建模,模拟和原形化
% * 数据分析,探索和可视化
% * 科学与工程制图
% * 应用开发,包括图形用户界面的建立
%
%
% “MATLAB”代表MATrix LABoratory(矩阵实验室)。MATLAB最初是编写来提供给对由LINPACK
% 和EINPACK工程开发的矩阵软件简易访问的。今天,MATLAB使用由LAPACK和ARPACK工程开发的软件,这
% 些工程共同表现了矩阵计算的软件中的技术发展。
%
% Matlab是一种高水平的矩阵/数组语言,含有控制流语句,函数,数据结构,输入/输出,和面向
% 对象编程特征。它允许“小型编程”以迅速创立快速抛弃型程序,以及“大型编程”以创立完整的大
% 型复杂应用程序。
% MATLAB是一个交互式的系统,其基本数据元素是无须定义维数的数组。这让你能解决很多技术计算
% 的问题,尤其是那些要用到矩阵和向量表达式的问题。而要花的时间则只是用一种标量非交互语言(例
% 如C或Fortran)写一个程序的时间的一小部分。
%
% MATLAB已经与许多用户输入一同发展了多年。在大学环境中,它是很多数学类、工程和科学类的
% 初等和高等课程的标准指导工具。在工业上,MATLAB是高产研究、开发和分析所选择的工具。
%
% MATLAB以一系列称为工具箱的应用指定解答为特征。对多数用户十分重要的是,工具箱使你能学
% 习和应用专门的技术。工具箱是是MATLAB函数(M-文件)的全面的综合,这些文件把MATLAB的环境扩
% 展到解决特殊类型问题上。具有可用工具箱的领域有:信号处理,控制系统神经网络,模糊逻辑,小
% 波分析,模拟等等。
%
% MATLAB数学函数库汇集了大量计算的算法,范围从初等函数如:求和,正弦,余弦和复数的算术
% 运算,到复杂的高等函数如:矩阵求逆,矩阵特征值,贝塞尔(Bessel)函数和快速傅立叶变换等。
%
%
clear % 清除所有变量
clc % 清除命令窗口
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% + 1 ++++Matlab一些基本操作++++++++++++++++++++++++++++++++
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
help clc % clc的帮助文件,后接文件名则调出关于该函数过程的帮助内容
what % M、MAT、MEX 文件的目录列表
which mean % 该函数和文件的路径
eval('1+2*5+pi') % 执行由MATLAB 表达式构成的字串
clock % 挂钟
date % 日历
% etime % 计时函数
tic % 秒表开始计时
toc % 计时函数
cputime % CPU 时间(以秒为单位)
%
eps % 相对浮点精度,好像一个常数似的=2.2204e-016,不知道跟机子有无关
realmax % 最大浮点数
realmin % 最小浮点数
inf % 无穷大
nan % 非数值
% 显示字符超链接
disp('<a href="matlab:magic(4)">Generate magic square</a>')
%
cd % 当前工作目录,改变当前工作目录
dir % 当前目录下的文件列表
%
getenv('OS') % 获取环境变量值,这里是获取操作系统的信息
computer % 计算机类型
%
hostid % MATLAB 主服务程序的识别代号
% ver % 版本信息
version % MATLAB 版本号
%
% 执行DOS 操作系统命令
!cd
%
% type mean % 列出M 文件内容,work中必须有该文件
% lookfor mean % 通过help 条目搜索关键字,由于执行速度慢,故注释掉
% doc mean % 装入超文本说明,载入帮助,由于要弹出帮助文档,故注释掉
% disp('<a href="matlab:doc mean">to Mean Help</a>')
% flops % 浮点运算次数
% nargin % 函数输入变量数
% nargout % 函数输出变量数
% why % 简明的答案(我没有明白什么意思)
%
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% + 2 ++++输入一些测试数据++++++++++++++++++++++++++++++++++
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
format long % 格式化显示为长字
%
% 输入矩阵,“,”与空格等价,“;”为换行,即行的终点
% 用Matlab函数和内置常量产生
m=magic(3) % 魔方矩阵
p=pi % 圆周率
o=zeros(2,5) % 零矩阵
one=ones(2,5) % 全“1”矩阵
yi=eye(3) % 单位矩阵
rd=rand % 均匀分布的随机数矩阵
rn=randn % 正态分布的随机数矩阵
%
% 笔者输入的一些矩阵,下面将用到它们
%
v=[11,12,0,14;0,22,23,24;31,0,33,34]
w=[0:7:30]; % 矩阵后的分号使得该矩阵隐藏显示
x=[11 12 13 0;
0 22 23 0;
31 0 33 0;
5.123456789 -5 6 0]
x1=[4,3,0] % 创建两个向量
x2=[-3,4,0]
y=4+i+2*j % i,j为虚数单位
z=-6.818;
q=[z,pi,5.51,v(end)] % v(end)取v矩阵的最后一个数
format short
q' % “'”为转置
%
% 变量名、存储变量、删除变量、装载变量
%
who % 列出工作区中所有变量名
whos % 列表显示工作区中所有变量具体信息
exist a % 检查a变量或函数是否存在,是为1,否为0
save allval % 保存变量为allval.mat,也可空格接变量名保存指定的变量
save valtxt.txt -ascii% 保存变量为valtxt.txt
clear % 从内存中清除变量和函数,后可以接变量名
load('allval.mat') % 从磁盘文件中恢复变量
delete('allval.mat') % 删除文件allval.mat
%
% ++++++++++++++++++++++++++++++++++++++++++++++++++
% + 3 ++++矩阵++++++++++++++++++++++++++++++++++++++
% ++++++++++++++++++++++++++++++++++++++++++++++++++
%
% 除了知道魔方阵和范德蒙矩阵外,别的都不太清楚,故而注释掉
% compan % 友矩阵,“未*”
% hadamard % Hadamard 矩阵,“未*”
% hankel % Hankel 矩阵,“未*”
% hilb % Hilbert 矩阵,“未*”
% invhilb % 逆Hilbert 矩阵,“未*”
% magic % 魔方矩阵
% toeplitz % Toeplitz 矩阵,“未*”
% vander % Vandermonde 矩阵,“未*”
% cond % 计算矩阵条件数,“未*”
% norm % 计算矩阵或向量范数,“未*”
% rcond % Linpack 逆条件值估计,“未*”
%
% 3.1 矩阵的计算、排列和旋转=======
%
det(m) % 计算矩阵行列式值
sum(m) % 对m矩阵求和
min(m) % m矩阵每列的最小数
max(m) % m矩阵每列的最大数
[s,id]=sort(m) % 升序排列m矩阵,排列后赋给s,原址赋给id
% sortrows % 按升序排列行
diag(w) % 建立和提取对角阵
fliplr(x) % 矩阵作左右翻转
flipud(x) % 矩阵作上下翻转
rot90(v) % 矩阵旋转90 度
% ' % 矩阵的转置
reshape(v,2,6) % 改变矩阵大小
tril(v) % 提取矩阵的下三角部分
triu(v) % 提取矩阵的上三角部分
any(x) % 向量的任一元为真,则其值为真
all(x) % 向量的所有元为真,则其值为真
find(w) % 找出x的非零元素的索引号
%
% 3.2 矩阵性质===============
%
rank(m) % 计算矩阵秩
trace(m) % 计算矩阵的迹
eig(m) % 求特征值和特征向量
poly(m) % 求特征多项式
hess(m) % Hessberg 形式
% qz % 广义特征值,“未*”
null(x) % 零矩阵
orth(x) % 正交化
pinv(m) % 矩阵伪逆
%
% 3.3 矩阵分解===============
%
X = pascal(5) % 帕斯卡矩阵
chol(X) % Cholesky 分解
lu(m) % 高斯消元法求系数阵
inv(m) % 矩阵求逆
qr(m) % 正交三角矩阵分解(QR 分解)
schur(x) % Schur 分解
% gdf2rdf % 变复对角矩阵为实分块对角形式,“未*”
% balance % 矩阵均衡处理以提高特征值精度,“未*”
%
%
corrcoef(v) % 计算互相关系数
cov(x) % 计算协方差矩阵
geomean(v) % 计算样本的几何平均值
harmmean(m) % 计算样本数据的调和平均值
iqr(v) % 计算样本的四分位差
kurtosis(v) % 计算样本的峭度
mad(v) % 计算样本数据平均绝对偏差
mean(m) % 计算样本的均值
median(m) % 计算样本的中位数
range(x) % 样本的范围
skewness(v) % 计算样本的歪度
std(v) % 计算样本的标准差
var(v) % 计算样本的方差
% moment % 计算任意阶的中心矩,没有研究或没有研究通它的用法下简称“未*”
% prctile % 计算样本的百份位数,“未*”
% trimmean % 计算包含极限值的样本数据的均值“未*”
%
%
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% + 4 ++++数学函数++++++++++++++++++++++++++++++++++++++++++
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
size(x) % 矩阵x的尺寸
length(x) % 向量x的长度,矩阵的行数
tan([p p/3 p/4 p/6]) % 正切
atan(x) % 反正切
fix(q) % 朝零方向取整,整数部分
floor(q) % 朝负无穷大方向取整
ceil(q) % 朝正无穷大方向取整
round(q) % 朝最近的整数取整
rem(9,4) % 除后取余
sign(z) % 符号函数
factor(210) % 质因子
%
abs(z) % 绝对值
abs(y) % 复数的模
gcd(12,15) % 最大公因数
lcm(12,15) % 最小公倍数
% conv2 % 二维卷积,摄影测量要用到卷积
% conv % 卷积和多项式乘法
%
% 向量 ---〉
%
dot(x1,x2) % 向量点集
cross(x1,x2) % 向量叉集
%
% 复数
real(y) % 复数实部
imag(y) % 复数虚部
angle(y) % 复数的辐角
conj(y) % 共轭复数
%
% 对数指数
exp(m) % e的x次幂
log(m) % e为底的对数
log10(m) % 10为底的对数(也叫常用对数)
sqrt(x) % x的平方根
%
%
% 数据类型转化===========
%
strx=num2str(x) % 变数值为字符串
mm=int2str(m) % 变整数为字符串
numx=str2num(strx) % 变字符串为数值
%
% 数制转化
% hex2num % 变十六进制为IEEE 标准下的浮点数
% hex2dec % 变十六制数为十进制数
% dec2hex % 变十进制数为十六进制数
%
% 下面告诉你一个不用查t分布表就可以知道相应值的函数
icdf('t',0.95,... % 续行
20) % 自由度为20的t分布95%下分位数,即t分布表中n=20,a=0.05对应的值
icdf('t',1-0.10,8) % 查t分布表中n=8,a=0.10对应的值
%
% 简单的绘制平面图
x_ = -pi:.1:pi;
y_ = sin(x_);
plot(x_,y_)
set(gca,'XTick',-pi:pi/2:pi) % 设置X轴的刻度
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'}) % 标定X轴的量数
xlabel('-\pi \leq \theta \leq \pi')
ylabel('y=sin(\theta)')
title('Plot of y=sin(\theta)')
text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi/4)',...
'HorizontalAlignment','left')
set(findobj(gca,'Type','line','Color',[0 0 1]),...
'Color','red',...
'LineWidth',2)
%
%
figure(2)
t = 0:pi/10:2*pi;
[X_,Y_,Z_] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X_)
subplot(2,2,2); mesh(Y_)
subplot(2,2,3); mesh(Z_)
subplot(2,2,4); mesh(X_,Y_,Z_)
%
%
%
% reply = input('Do you want more? Y/N [Y]: ', 's');
% if isempty(reply)
% reply = 'Y';
% endd
% ====================
% Matlab中著名的For语句
% -------------------------------
% for q=1:2:10
% q
% end
% ====================
% 注意:与C语言的switch语句不同的是,MATLAB的switch是不会落空的。
% 如果情形1是真,则其他语句不执行。因此,不需用break语句。
n=input('请您输入一个正整数:')
if isempty(n)
n = 5
end
switch rem(n,3)
case 0
disp('你输入的数除以3的余数为:0')
case 1
disp('你输入的数除以3的余数为:1')
case 2
disp('你输入的数除以3的余数为:2')
otherwise
error('错误!!请检查数据是否合法')
end
%
%
%
% ++++MATLAB矩阵示例
% airfoil % 美国太空总署机翼的稀疏矩阵的绘图示例。
% buckydem % Buckminster Fuller的网格球顶连通图。
% delsqdemo % 不同域上的有限拉普拉斯微分算子。
% eigmovie % 对称特征值电影。
% eigshow % 矩阵特征值的图示。
% intro % MATLAB基本矩阵运算的介绍。
% inverter % 大矩阵的逆示例。
% matmanip % 矩阵操作介绍。
% rrefmovie % 简化行阶梯形的计算。
% sepdemo % 有限元网格的分离器。
% sparsity % 稀疏排序效果演示。
% svdshow % 矩阵奇异值的图形示例。
%
% ++++MATLAB数字示例
% bench % MATLAB基准。
% census % 美国2000年人口预报。
% e2pi % 如下问题的二维直观解答“e和e哪个较大?”
% fftdemo % 光谱分析的快速傅立叶变换法使用。
% fitdemo % 用单一算法作非线性曲线拟合。
% fplotdemo % 函数作图的示例。
% funfuns % 函数嵌套示例。
% lotkademo % 常微分方程解的示例。
% quaddemo % 适应性积分。
% quake % Loma Prieta震荡。
% spline2d % 二维ginput和spline的示例。
% sunspots % MATLAB中快速傅立叶变换示例,用于分析太阳黑子活动性的变化。
% zerodemo % 用fzero找零点。
%
% ++++MATLAB可视化程序示例
% colormenu % 在当前图象添加颜色条示例。
% cplxdemo % 单复变函数映像。
% earthmap % 地球地形的图形演示。
% graf2d % MATLAB中的二维坐标图
% graf2d2 % MATLAB中三维坐标图。
% grafcplx % MATLAB中复函数图象。
% imagedemo % MATLAB的图形功能演示。
% imageext % 变换与旋转图像颜色图演示。
% lorenz % 洛仑兹混沌吸引子附近轨道的图象演示。
% penny % 便士数据几种图。
% vibes % 震荡L形膜电影。
% xfourier % 傅立叶级数展开的图形演示。
% xpklein % 克莱因瓶演示。
% xpsound % MATLAB声音功能演示。
%
% ++++MATLAB语言程序示例
% graf3d % 表面图的句柄图演示。
% hndlaxis % 轴的句柄图演示。
% hndlgraf % 线图的句柄图演示。
% xplang % MATLAB语言介绍。
%
% ++++MATLAB常微分方程组程序演示
% a2ode % 带实特征值的线性刚性问题。
% a3ode % 带实特征值的线性刚性问题。
% b5ode % 带复特征值的线性刚性问题。
% ballode % 用于BALLDEMO中的弹球运动方程。
% besslode % 用于BESSLDEMO的零阶Bessel方程。
% brussode % 模拟化学反应(Brusselator)的刚性问题。
% buiode % Bui的刚性问题的分析解。
% chm6ode % 从Enright到Hull的化学加工6的刚性问题。
% chm7ode % 从 Enright到Hull的化学加工7的刚性问题。
% chm9ode % 从 Enright到Hull的化学加工9的刚性问题。
% d1ode % 带非线性实特征值的刚性问题。
% fem1ode % 带有依赖于时间的块矩阵的刚性问题。
% fem2ode % 带有不依赖于时间的块矩阵的刚性问题。
% gearode % 由van der Houwen引用的归于Gear的刚性问题。
% hb1ode % Hindmarsh和Byrne的刚性问题1。
% hb2ode % Hindmarsh和Byrne的刚性问题2。
% hb3ode % Hindmarsh和Byrne的刚性问题3。
% odedemo % 常微分方程组积分器的示例。
% orbitode % 用于ORBITDEMO的限制三物体问题。
% orbt2ode % Hull et al的非刚性问题D5。
% rigidode % 不受外力的刚体的欧拉方程。
% sticode % 用于STICDEMO的固定于表面的弹簧驱动质量。
% vdpode % 可参数化的van der Pol方程(对大μ刚性)。
%
% ++++MATLAB图库程序示例
% cruller % 麻花炸面圈的图形演示。
% klein1 % 克莱因瓶的图形演示。
% knot % 包围三维绳结的管。
% logo % MATLAB的L形膜标识语的图形示例。
% modes % L形膜的12种模式的图形演示。
% quivdemo % 震动方程的图形演示。
% spharm2 % 球面谐波的图形演示。
% tori4 % 四连接,未成结的圆环面的图形演示。
% finddemo % 查找单独工具箱的可用示例的命令。
% helpfun % 方便地显示帮助文本的效用函数。
% membrane % MathWorks标识语。
% peaks % 双变量的样本函数。
% pltmat % 在figure窗口显示矩阵的命令。
%
% +++++MATLAB游戏演示程序
% bblwrap % 泡泡游戏。
% life % Conway的生命游戏。
% soma % 彩色魔方块。
% xpbombs % 扫雷游戏。
%
% ++++MATLAB其他演示程序
% codec % 字母变换编码器/解码器。
% crulspin % 扭纹圈自转电影。
% logospin % MathWorks标识语的自转电影。
% makevase % 表面旋转的演示。
% quatdemo % 四元数旋转。
% spinner % 彩色线在空间自转。
% travel % “货郎担”问题。
% truss % 弯桥构架动画。
% wrldtrv % 绕地球大圆的航空线。
% xphide % 运动物体的可视感知。
% xpquad % 二次超曲面的作图演示。
%
% ++++MATLAB帮助函数示例
% bucky % Buckminster Fuller的球顶网格图。
% cmdlnbgn % 命令行示例的设定。
% cmdlnend % 命令行示例演示后清除。
% cmdlnwin % 运行命令行演示的通行路径。
% finddemo % 对单独工具箱查找可用示例的命令。
% helpfun % 方便地显示帮助文本的效用函数。
% membrane % MathWorks标识符。
% peaks % 双变量样本函数。
% pltmat % 在figure窗口显示矩阵的命令。