查看文章
 
% Matlab创建有价值历史纪录
2008-09-20 10:25 A.M.


% “%”为注释符
% 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窗口显示矩阵的命令。


类别:默认分类||添加到搜藏 |分享到i贴吧|浏览(333)|评论 (0)
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu