【MATLAB】介绍、变量、数组、输出、运算、内建函数

一.MATLAB介绍

1.如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(...),再开始第二行的书写。

2.用 whos 命令将会产生一个在当前工作区内的所有变量和数组状况表。

3.脚本文件(Script files)calc_area 创造了变量 area,radius 和 string,sin_x 创造了变量 x 和 y。请注意所有的变量在同一工作区,所以两个脚本文件(Script files)按顺序执行, 第二个脚本文件(Script files)可以利用第一个脚本文件(Script files)所创建的变量。每一个变量和数组的内容可以通过在命令窗口(The Command Windows)中输入对应名字得到显示。

4.第一种方法是在 MATLAB 命令窗口(The Command Windows)中输入 help 或 help 和所需要的函数的名字。如果你在命令窗口(TheCommandWindows)中只输入 help, MATLAB将会显示一连串的函数。如果有一个专门的函数名或工具箱的名字包含在内,那么 help 将会提供这个函数或工具箱。第二种方法是通过 lookfor 命令得到帮助。lookfor 命令与 help 命令不同,help 命令要求与函数名精确匹配,而 lookfor 只要求与每个函数中的总结信息有匹配。Lookfor 命令比 help 命令运行起来慢得多,但它提高了得到有用信息的机会。举个例子,假设你想找到一个求矩阵的逆阵(inverseofmatrix)的函数。但是 MATLAB 中没有叫 inverse 的函数,这时 help 命令就不起作用了,只能用 lookfor 命令,得到以下结果。

5.工作空间窗口(The workspace browser)中的变量在独立的命令和 M 文件间执行时,可能会出现第一个问题中的变量存留在工作区而影响到第二个问题的解决。为了避免这种情况的发生,在新的计算开始之前,应当有 clear 命令清空工作区

6.ctrl+c终止程序,!发送命令行命令给操作系统,diary filename将命令窗口的输入输出记录入文件中。

7.如果变量名与 MATLAB 中的函数或命令重名,那么这个函数或命令将不能被访问。不要创建和 MATLAB 内建函数或命令同名的 M 文件。

8.which 命令,它能帮助我们找到正在执行的文件版本和它的路径。在检查文件名冲突方面它是非常有用的。

二.MATLAB基础——变量和数组

  1. MATLAB 的变量名必须以字母开头,后面可以跟字母,数字和下划线(_) .只有前 31

个字符是有效的;如果超过了 31 个字符,基余的字符将被忽略。如果声明两个变量,两变

量名只有第 32 个字符不同,那么 MATLAB 将它们当作同一变量对待。

2.MATLAB的数组下标从1开始,array=[1 2 3 4],array(1)=1。在一行内单个数值可用空格或逗号隔开,而行与行之间要与则用分号隔开,或另起一行书写。注意一个数组每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同。

3.创建一个数组时,没有被定义的元素被初始化为0:c(2,3)=5,c=[0,0,0;0,0,5].

4.如果指定一个值给一个存在的数组,但超过了数组的大小,将会默认补0:d=[1 2],d(4)=4,d=[1 2 0 4]。

5.每个赋值语句后如果没有分号,命令窗口将会显示变量值。

6.x=first:step:last。

7.转置运算符‘:f=[1:4]’=[1 2 3 4]’=[1;2;3;4]

8.用于初始化变量的函数:

zeros(n):n*n全零

zeros(n,m):n*m全零

zeros(size(arr)):与arr同行数同列数全零

ones(n):n*n全1

ones(n,m):n*m全1

eye(n):n*n单位矩阵

eye(n,m):n*m单位矩阵

length(arr):arr向量长度或者二维数组中最长的那一维的长度

size(arr):行数和列数

9.用input初始化变量:my_val = input('enter data:')当这个语句被编译时,MATLAB 打印出字符串 enter data:,然后等待用户回复.如果要只输入一个数,那么只需要直接键入,如果要输入一个数组,则必须带上中括号([]).不管怎样,当按下回车键时.在窗口输入的任何值都会被储入变量 my_val.如果只按下回车键,那么这个变量就存储了一个空矩阵.如果 input 函数中有字符's'做为它的第二个参数,输入的数据就被当字符串:my_val=input(‘enter data:’,’s’)

10.创建2*3*2数组:

C(:,:,1)=[1,2,3;4,5,6]

C(:,:,2)=[7,8,9;10,11,12]

11.MATLAB中以最后一维(如,二维是列)主导顺序分配数组元素在内存中的存储。

12.可以使用单个下标访问多维数组:若A=[1 2 3;4 5 6;7 8 9;10 11 12],A(5)=A(1,2)=2,按列存储:1,4,7,10,2,5,8,11,3,6,9,12。

13.子数组:

若array=[1 2 3 4 5],则array(3)=3,array([1 4])=[1 4],array(1:2:5)=[1 3 5]

若array=[1 2 3;4 5 6;7 8 9],则array(1,:)=[1 2 3],array(:,1:2:3)=[1 3;4 6;7 9]

14.end函数:返回所指维数的下标最大值

若array=[1 2 3 4;5 6 7 8;9 10 11 12],则array(2:end,2:end)=[6 7 8;10 11 12],第一个end返回行的下标最大值3,第二个end返回列的下标最大值4。

15.子数组在左边的赋值语句,要与右边的形相匹配: 若array=[1 2 3 4;5 6 7 8;9 10 11 12],array(1:2,[1 4])=[20 21;22 23],则array=[20 2 3 22;21 6 7 23;9 10 11 12]。用子数组赋值,只更新相应的值,直接赋值则删除原数组建立新数组。

若array(1:2,[1 4])=1,则array=[1 2 3 1;1 6 7 1;9 10 11 12]。

16.预定义值:

pi:有15个有效值的π

i,j:代表虚数i(根号−1)

Inf:这个符号代表无穷大,它一般情况下是除以0产生的

NaN:这个符号代表没有这个数。它一般由数学运算得到的。例如,0除以0。

clock:这个特殊变量包含了当前的年,月,日,时,分,秒,是一个6元素行向量

date:当前的日期,使用的的字符形式,如30-Dec-2007

eps:变量名是epsilon的简写。它代表计算能机辨别的两数之间的最小数

ans:常用于存储表达式的结果,如果一个结果没有明确的赋值给某个变量

三.MATLAB基础——输出显示、运算、内建函数

1.改变默认格式(四位小数):format

format short保留小数点后4位(默认格式)12.3457

format long保留小数点后14位12.345678901234567

format short e带有5位有效数字科学记数法1.2346e+00

format short g总共有5个数字,可以用科学记数法,也可不用12.346

format long e带有15位有效数字科学记数法1.234567890123457e+001

format long g总共有15个数字,可以用科学记数法,也可不用12.3456789012346

format bank美元格式12.35

format hex用16进制表示4028b0fcd32f707a

format rat两个小整数的比1000/81

format compact隐藏多余的换行符

format loose使用多余的换行符

format +只显示这个数的正负+

2.disp函数:disp(num2str(x))、disp(int2str(x))(将一个整数转化为字符串)

3.fprintf函数:fprintf(‘format’,x),只显示复数的虚部

%d 把值作为整数来处理

%e 用科学记数法来显示数据

%f 用于格式化浮点数,并显示这个数

%g 用科学记数格式,或浮点数格式,根据哪个短,并显示之

\n 转到新的一行

4.使用save将当前MATLAB工作区中的指定变量保存到一个文件中,save filename x y z;

如果filename后面没有变量名,则保存全部内容。MATLAB 用一种特殊的复杂形式来存储数据,包括了许许多多的细节,例如变量名和变量类型,数组的大小,以及所有变量值。一个在任何一个平台上创建的 MAT 文件(pc, mac,unix)在另一个平台上都可以应用。它的缺点是 MAT 文件的存储格式不能被其他程序读取。如果一个数据必须由其他程序所读取,那么必须转化为 ASCII 码,并将这些数值写到一个以 ASCII 码为编码的文件中。但是,当以 ASCII 的形式存储,像变量名和变量类型这样的信息就会丢失,产生的数据结果将会更大。save filename.dat x y z –ascii,使用dat保存ascii数据文件。

5.使用load加载硬盘文件到当前工作区,如果这个文件是 mat 文件,那么所有被子加载的变量的变量名的变量类型将和原来一样。如果一个变量包含在工作区间窗口,那么这些数据将会被修复。MATLAB 能够加载由其他程序创建的 ascii 格式的数据文件。 它首先检查所要加载的文件是 mat 文件还是 ascii 文件。如果在 load 语句中加入­ascii 中,则强制 MATLAB 把这个文件看作 ASCII 文件。这个文件的内容将会被转化为一个 MATLAB 的数组,这个数组名就所要加载的文件名。

6.数组+数组:相应元素相加,数组+标量:各元素加标量

7.区分数组和矩阵运算:

数组加法 A+B 数组加法和矩阵加法相同

数组减法 A-­B 数组减法和矩阵减法相同

数组乘法 A.*B A和B的元素逐个对应相乘.两数组之间必须有相同的形,或其中一个是标量.

矩阵乘法 A*B A和B的矩阵乘法.A的列数必须和B的行数相同.

数组右除法 A./B A和B的元素逐个对应相除:A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量.

数组左除法 A.\B A和B的元素逐个对应相除:B(i,j)/A(i,j)两数组之间必须有相同的形,或其中一个是标量.

矩阵右除法 A/B 矩阵除法,等价于A*inv(B), inv(B)是B的逆阵

矩阵左除法 A\B 矩阵除法,等价于inv(B)*A, inv(A)是A的逆阵

数组指数运算 A.^B AB中的元素逐个进行如下运算 A(i,j)^B(i,j), A(i,j)/B(i,j)两数组之间必须有相同的形,或其中一个是标量.

8.MATLAB函数返回一个或多个值给调用函数:

max返回输入向量中的最大值,以及最大值在向量中的位置。

若x=[0 pi/2 3*pi/2 2*pi],y=sin(x),则y=[0 1 -1 0]

9.常见的MATLAB函数:

abs(x)计算 x 的绝对值
acos(x)计算 x 的反余弦函数
angle(x)计算复数 x 的幅角
asin(x)计算 x 的反正弦函数值
atan(x)计算 x 的反正切函数值
atan2(y,x)atan(y/x)
exp(x)、 log(x)e^x 、logex
[value,index]=max(x)返回 x 中的最大值,和它所处的位置
[value,index]=min(x)返回 x 中的最小值,和它所处的位置
mod(x,y)余数
sqrt(x)x的平方根
round(x)四舍五入
ceil(x)向上取整
fix(x)、floor(x)向下取整
char(x)将矩阵中的数转化为字符,矩阵中的元素就不大127
int2str(x)将整数 x 转化为字符串形式
num2str(x)将带小数点的数转化为一个字符型数组
str2num(x)将字符串转化为数


  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值