Matlab基础知识(一)

来源:互联网 发布:淘宝买苹果数据线 编辑:程序博客网 时间:2024/05/16 14:25

目录:

1.显示输出数据

2.数组运算和矩阵运算

3.多维数组在内存中的存储

4.用关键字input 初始化变量

5.运算符的优先级问题

6.选择结构

7.循环结构

8.逻辑数组与向量化

9.自定义函数

 


 

 

1.显示输出数据

表1.输出显示格式

format

 

disp函数:它需要一个数组参数,它将该数组显示在命令窗口。下面的语句向命令窗口输出一个字符串。

 

用fprintf 函数格式化输出数据:

例如,下列语句计算复数x 的值,分别用fprintf 和disp 显示

 

 

打印的结果如下:

 

 


 

2.数组运算和矩阵运算

表2. 常见的数组和矩阵运算

数组运算和矩阵运算

 


 

3.多维数组在内存中的存储

 

MATLAB 以列主导顺序分配数组中的元素。也就是说,内存先分配第一列的元素,然后第二列,第三列,……以此类推,直到所有列都被分配完。

 

例如,在一个2×2×2 数组中,它的元素在内存中的分配顺序是

(1,1,1),(2,1,1),(1,2,1),(2,2,1),(1,1,2),(2,1,2),(1,2,2),

(2,2,2)。

对于一个4*3的数组,a(5)和a(1,2)的值相同。

 


 

4.用关键字input 初始化变量

关键字 input 用来提示使用者和直接从键盘输入初始化变量.

 

把数值1.23 存储到in1 中.而语句

 

把字符串1.23 存储到in2 中.

 


 

5.运算符的优先级问题

 

 

1.所有的数学运算按照前面描述的顺序的进行。

2.从左向右依次进行关系运算

3.执行所有~运算

4.从左向右依次进行&运算

5.从左向右依次进行|运算和数学运算<script type=">plugins/syntaxhl/langs/zh.js" type="text/javascript">一样,括号能够改变括号的默认顺序。


6.选择结构

 


 

7.循环结构

 


 

8.逻辑数组与向量化

 

matlab 有两个基本类型的数据类型:数字型与字符型。数字型数据包括数字,字符型数据包含字符。除这两个数据类型之外,还有第三类数据类:逻辑型。

 

“逻辑”数据类型在matlab 中并不真实存在。其实,它是带特定逻辑属性标准数字型数据类型。逻辑型数组通过所有的关系运算符和逻辑运算符创建。它们区别于数字型的是在调用whos 命令时,(logical)会出现在类型的后面。

例如,考虑下面的语句

 

当调用whos 命令时,结果如下。

 

 

我们还可以用logical 函数给一个数组加上一个逻辑属性。例如,语句c=logical(a),将会把a 值赋于c,从而使c 带有一定的逻辑性。

一个数组的逻辑属性可以通任何的数学运算去除。例如,如果我们在c 数组加0,数组的值不会改变,而它的逻辑属性将会消失。

 

逻辑数组有一个重要的属性——它在算术运算中能提供一个屏蔽(mask)。屏蔽(mask)是指一个数组,它从另一个数组选择所需的元素参与运算。指定的运算只在选择的元素上执行,而不执行原有的元素。

 

 


9.自定义函数

基本形式如下:

 

 

function 语句标志着这个函数的开始。它指定了函数的名称和输入输出列表。输入函数列表显示在函数名后面的括号中。输出函数列表显示在等号左边的中括号中。(如果只有一个输出参数,中括号可以省略。)

 

输入参数列表是名字的列表,这些名字代表从调用者到函数的值。这些名字被称作形参。

 

在一个表达式中,调用一个函数需要用到实参列表。在命令窗口直接(或在脚本文件中,另一个函数中)键入函数的名字就可以调用这个函数了。当调用一个函数时,第一个实参的值用在第一个形参的位置,而且其余的形参和实参都一一对应。

函数的执行从函数的顶部开始,结束于return 语句或函数的终点。在输出参数列表中每一个项目都必须出现在function 语句中的左边。当函数返回时,存储于输出函数列表的值就会返回给调用者,用于下一步的运算。

 

在一个函数中的初始注释行有特定的目的。在function 语句的第一个行注释被称为H1注释行。它应当是对本函数功能的总结。这一行的重要性在于,通过lookfor 命令它能被搜索到并显示出来。从H1 注释行到第一个空行或第一个可执行性语句可以通过help 命令或帮助窗口搜索到。它们则应包含如何使用这个函数的简单总结。

 

下面是一个自定义函数的简单例子。函数dist2 用于计算笛卡尔坐标系中点(x1,y1)与点(x2,y2)之间的距离。

 

下面是一个简单的利用上面的函数的例子:

 

 

9.1全局变量

声明有全局变量的脚本文件或函数将有办法访问相同的值,所以全局变量为函数之间分享数据提供了一个方法。

 

 

全局变量的声明要用到global 主语句,基本形式如下

global var1 var2 var3 ...

 

其中var1,var2,var3 等等是用全局内存的变量。为了方便,全局变量将在函数开头被声明,但是实际上没有这个必要。

在一个程序,你能利用全局内存,在函数之间对大规模数据进行交换。

 

 

 

9.2持久变量

Matlab中就有了一个特殊的机制。这种机制允许多次调用一个函数时,保存本地变量。持久内存是内存的一种类型,在函数上一次调用之后,这一步调用之前,本地变量被保存在持久内存,值不变。

持久变量应用语句声明。它的形式如下:

persistent var1 var2 var3 ...

var1,var2,var3...是存储于持久内存中的变量。

 

 

9.3函数的函数

 

函数的函数是指函数的输入参数中含有其他的函数,传递给函数的函数的变量名一般情况应用于这个函数执行的过程中。

 

例如,MATLAB 中有一个函数的函数叫做fzero。这个函数用于找到传递给它的函数值为0 时的自变量。

 

 

函数的函数操作的关键字有两个专门的maltab 函数,eval 和feval。。函数eval 对一个字符串进行求值,就如它在命令窗口中已经键入了一样。函数feval 用一个特定的输入值对命名的函数进行求值。

 

表9.函数的函数

函数的函数

9.4子函数和私有函数

 

在一个单个的文件中我们可以创建多个函数。如果超过 1 个的函数出现在一个文件中,那么最上面的那个函数为普通函数,下面的函数称为子函数或中间函数。子函数看起来和普通函数一样,但是只能被同一文件中的函数调用。

 

私有函数是指属于以private 为名字的子目录中的函数。这些函数只有在父目录中才是可见的。

 

在一个M 文件中,调用一个函数,MATLAB 先检查看他是否是一个子函数。如果它不是那就检查它是不是一个私有函数。如果也不是私有函数,MATLAB 就会检它在不在标搜索路径中。

 

用子函数或私有函数来隐藏特殊目的的函数,这些隐藏的函数只能被其他函数调用。隐藏这些函数防止了它们偶然的使用,也能防止与其他公共函数重名时发生的冲突。

原创粉丝点击