Matlab Notes(1)

1. 对于matlab的整体认知

work目录下建立startup.m 可以产生欢迎效果。在m文件里输入:disp(‘嗨!!!怎么样?今天心情愉快么?打起精神来!Do It !!! ……….’);

(1) File菜单项:File菜单项实现有关文件的 操作。
(2) Edit菜单项:Edit菜单项用于命令窗口的编辑操作。
(3) Debug菜单项:Debug菜单项用于调试 Matlab的程序。

    (4) Desktop菜单项: Desktop菜单项用于设置 Matlab 的窗口布局。
    (5) Window菜单项:主窗口菜单栏上的Window菜单,包含一个子菜单Close all,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model 和GUI窗口。
    (6) Help菜单项:Help菜单项用于提供帮助信息。

2. 方向键和控制键可以编辑修改已输入的命令

上方向键:  回调上一行命令     下方向键:回调下一行命令

Home键:回到当前命令行的起始位置  End键:回到当前命令行结束的位置

3.有用的系统命令

1.dir— 可列出指定目录下的文件和子目录清单

例如: dir    可显示当前目录下的所有文件    dir    c:\matlab

2.cd(current directory)—可改变当前工作目录

           cd  c:\matlab\toolbox          cd path:由当前目录进入path目录

cd ..:返回上一级目录          cd:显示当前目录

3.type — 可显示指定文件的全部内容       type   myfile.m

4.delete ——删除指定文件                delete  c:\matlab\aaa.m

5.clc  清除命令窗口全部内容

6.clear   清除当前工作空间中的所有变量   clear A  x   清除指定的变量

7.save[文件名][变量名][-append][-ascii]  将所有变量存入文件 matlab.mat

save mydata  将所有变量存入指定文件 mydata.mat

(如果想在mydata.mat中继续添加变量d用如下命令:save matlab d –append)

例:>> save  mydata  A x z

  1. load mydata 载入数据文件中的所有变量

load mydata A  x   从数据文件中提取指定变量

9.变量查询函数who与whos (简与全)[永久变量用who指令是查看不到的,只可 随时调用]

10.path:获取或设置搜索路径(设置,如:’path(path,’c:tools\goodstuff’)

11.userpath:更改系统默认搜索路径(如:userpath(‘Program Files\MATLAB\R2009a\work’  然后savepath)

12.pathtool:打开setpath窗口

13.edit:打开editor编辑器

14.error(‘wrong’):错误信息函数

4. Matlab的特殊变量与常量

eps — 容差变量,(计算机的最小数)在 pc机上 = 2e-52

pi — 圆周率p的近似值3.1415926

inf或Inf — 表示正无大,定义为1/0

NaN — 非数,(Not a Number)它产生于0×¥,0/0,¥/¥ 等运算,即 0*inf

i,j — 虚数单位  flops —浮点运算数

ans — 对于未赋值运算结果,自动赋给ans

nargin —函数的输入变量个数           nargout —函数的输出变量个数

realmin 最小的正浮点实数                   realmax 最大的正实数

5. Matlab数据的变量精度与显示方式

格式 中文解释
format 默认格式,即short
format short 短格式(定点十进制5位有效数字)
format long 长格式(定点十进制15位有效数字)
format short e 短格式e方式(浮点十进制5位有效数字)
format long e 长格式e方式(浮点十进制15位有效数字)
format short g 短格式g方式(少于5位有效数字的元素采用原形式,其余采用浮点十进制5位有诳数字)
format long g 长格式g方式(少于15位有效数字的元素采用原形式,其余采用浮点十进制15位有诳数字)
format hex 十六进制格式
format + 显示矩阵的正负号,符号+ -和空白分别对应正数 负数和零(虚部被忽略)
format bank 银行格式(定点十进制小数点后2位有效数字,通常用于实数
format rat 以分数形式显示矩阵元素
format compact 屏幕显示方式为紧凑,数据间隔小
format loose 自由格式

6. MATLAB中数据类型及相关函数

 

MATLAB中数据类型
Logical Char Numeric(数值)(integer) Cell(细胞) Structure java function_handle
    int8[-2e7,2e7], uint8[0,2e8]

int16, uint16

int32, uint32

int64, uint64

single, double

  user clases   classes

函数句柄

intmax  intmin :查询不同整型所能表示的最大整数和最小整数。

Realmax  realmin :查询单精度和双精度所能表示的最大浮点数和最小浮点数。

Realmax(‘single’);    realmin(‘single’);

realmax和realmin与realmax(‘double’)/realmin(‘double’)等价

int8/uint8等也是类型转换函数,如:x1=int8(11);   x2=int8(15.49);  x6=uint8(256)(x6=255);

同样single/double也是类型转换函数

class:查看变量类型

(复数的定义):直接输入如: z=3+4i

使用complex函数:z=complex(3,4)

字符与字符串函数:

定义:必须用单引号括起来: str1=’Matrix Laboratory’

字符串是多个字符组成的字符行向量: str2=[‘M’,’a’,’t’,’r’,’i’,’x’]

字符数组必须是方的: str3=[‘M’,’a’,’t’; ‘r’,’i’,’x’]

Matlab中字符是以ASCII码存储的,因而区分大小写,可用double函数查看一个字符的ASCII码

直接赋值: str1=’Matrix’;   str2=’Laboratory’;   str=[str1,str2];

使用char函数: str=char([77,97,116,108,97,98]) [ASCII  ® 字符串]

     str=char(str1,str2) [生成一个字符数组,第一行为str1,第二行为str2]

转换函数:

按ASCII 码转换: 字符数组到数值数组:double

                 数值数组到字符串:char

直接将转换数值数组转换成字符数组

a=[97,97.3;97.8,98];

str1=char(a)  str2=num2str(a)  str3=int2str(a)  str4=mat2str(a)

char 的输入参数范围为 [0,65535],当输入参数中有小数时,直接将小数部分舍去。

Num2str 直接将每个数字转换成字符

mat2str 把整个矩阵转换成字符行向量,包括矩阵中的方括号、空格 和 分号(逗号自动去除)

运行字符串所表示的表达式或命令:  eval  : str=’A=magic(3)’;  eval(str)

函 数 功 能 函 数 功 能
strcmp 比较字符串 strrep 替换字符串
strcmpi 忽略大小写比较字符串 strncmp 比较字符串的前n个字符
upper 转换为大写 lower 转换为小写
blanks 产生空字符串 deblank 删除字符串中的空格
strmatch 查找匹配的字符串 findstr 在一个字符串中查找另一字符串
strjust 对齐字符数组,包括左对齐,右对齐和居中 strtok 返回字符串中第一个分隔符 ( 空格,回车和Tab键 ) 前的部分

细胞: 

用赋值语句直接定义: A=[1 2; 3 4]; str=’Matlab’;

M={1:4, A, str}; celldisp(M)

 cell 函数预先分配存储空间,然后对细胞的每个元素逐个赋值。

        Cell(m,n)   生成一个 m 行 n 列 的细胞数组。A=[1 2; 3 4]; str=’Matlab’;

M=cell(1,3);  M{1,1}=1:4; M{1,2}=A; M{1,3}=str;  celldisp(M)

细胞变量的引用必须使用大括号: A=[1 2; 3 4]; str=’Matlab’;

M={1:4, A, str}; 

N={‘hello’, M; eye(2),magic(3)};

N{1,1}  N{1,2}  N{1,2}{1,2}  N{1,2}{1,2}(2,1)

celldisp(M):输出细胞变量的内容

cellplot:用图形方式显示细胞变量的内容

 

7. MATLAB程序控制结构

switch分支语句:switch 表达式                    例:switch fix(price/100)

case 表达式1   语句组1                            case {0,1}     rate=0;

case 表达式m  语句组2                             case {2,3,4}   rate=.03;

otherwise 表达式  语句组3(此行可以没有)             case {5,6,7,8,9}  rate=.05;

end    (注意:此语句没有break语句)                  otherwise    rate=.1;

end

try语句:经典的程序设计语言中未出现,这是一种试探性的分支语句,也就是如果这条语句执行有错误,则不执行,或执行其他的语句,提高了程序的容错性能,其语法为:

try

语句1

catch   (可以省略)

语句2

end

执行过程为:如果语句1错误执行语句2,如果语句1正确直接结束.

(循环可以嵌套,但是在MATLAB中,循环的执行效率很低,因此应该尽量避免使用循环,更要避免使用两重以上的循环.)