MATLAB 初学教程(二)

用赋值语句初始化变量

赋值语句的一般形式

var=expression

var是变量名,expression可以是一个标量、一个数组或常量、其他变量和数学运算符号(+、-)的联合。这个表达式(expression)的值是通过一般的数学运算法则计算出来的然后将产生的结果存储到变量var中。

var=40*i;
var2=var/5;
array=[1 2 3 4];
x=1;y=2;或x=1,y=2;

第一个例子创建了一个 double 类型的标量变量,存储了一个虚数 40i。第二个例子创建 了一个表达式 var2,把 var/5 的值存储于内。第三个例子创建了一个数组 array,并存储了一 个 4 元素的行向量于内。最后一个例子显示了多个赋值语句可写在同一行,中间用逗号或分 号隔开。注意如果在赋值语句执行时变量已经存在,那么这个变量原有的值将被覆盖。

注意一个数组每一行元素的个数必须完全相同,每一列元素的个数也必须完全相同。

[1 2 3;4 5]

这样的表达式是非法的,因为第一行有 3 个元素,第二行有只有 2 个元素.

用于初始化数组的表达式可以包括代数符号或事先已经定义好的数组.例如赋值语句

a=[0 1+7]
b=[a(2) 7 a]

定义了数组 a=[0 8]和数组 b=[8 7 0 8]。

当我们创建一个数组时,不是每一个元素都必须定义.如果要定义一个特殊的数组,或只 有一个或几个元素没有定义,那么之前的那些元素将会自动创建,并初始化为 0.例如,如果数 组 c 事先没有定义,语句 c(2,3)=5 将会创建一矩阵

c=[0 0 0
  0 0 5]

相似地,指定一个值赋予 一个存在的数组,但超过了这个数组的大小。例如,假设存在一数组 d=[1 2],下面这个语句

d(4)=4;

将会制造出数组 d=[1 2 0 4]。

扫描二维码关注公众号,回复: 9398977 查看本文章

在每个赋值语句末的分号有特殊的目的:无论在何时一个表达式在赋值语句中被赋值, 分号将会中止变量值的重复。如果句末没有分号,变量值将会自动显示在命令窗口(The Command Windows)中。

>>e=[1 2 3;4 5 6]
e=
    1   2   3   
    4   5   6

如果在赋值语句末有分号,这种重复将会消失。重复是一个用于检查你的工作极好的方 法,但是它降低了运行速度。因此,我们在一般情况下总是禁止重复。尽管如此,重复计算 的结果提供了一个强大的应急调试器。如果你不能确定一个特定的赋值语句结果是多少,这 时你可以去掉这个语句后的分号, 当这个语句编译时, 结果会显示在命令窗口(The Command Windows)。

好的编程习惯 在 MATLAB 赋值语句后加上一个分号来禁止变量值在命令窗口(The Command Windows)的重复。这将大大提高编译的速度。 好的编程习惯 如果你在调试程序时需要检测一个语句的结果,可能把句后的分号去掉,这样结果将 会出现在命令窗口(The Command Windows)。

用捷径表达式赋值

MATLAB 提供一种专门的捷径标记法,这种方法用克隆运算符( colon operator)适用 于上述情况。克隆运算符指定一系列的数值,它指定了这个系列数的第一值,步增和最后一 个值。它的一般顺序始下

first:incr:last

first 代表数组的每一个值, incr 代表步增量, last 代表这个数组的最后一个值。如果步 增量为 1,那么步增量可省略,而变成了 first:last 格式。 例如,表达式 1:2:10 是创建一个 1× 5 行向量[1 3 5 7 9]的简便方法。

>>x=1:2:10
x=
    1   3   5   7   9

用克隆标记法初始化一个含有一百个元素的数组语句如下

                                                     

Angles = (.01:.01:1)*pi

捷径表达式可以联合转置运算符(’ )来初始化行向量,或更加复杂的矩阵。转置运算 符可以在需要的情况下完成行和列的转换。因为这个表达式

f=[1:4]';

产生一个 4 元素行向量[1 2 3 4],然后将其转换成 4 元素的列向量

                                                                           

相似地,表 达式

g=1:4;
h=[g'g']
                                   

用内置函数来初始化

数组也可以用 MATLAB 内置函数创始化。例如,函数 zeros 可以初始化任何大小的全 为零的数组。用许多形式的 zeros 函数。如果这个函数的参数只是一个标量,那么 MATLAB 将会创建一个方阵,行数和列数均为这个参数。如果这个函数有两个标量参数,那么第一个 参数代表行数,第二个参数代表列数。因为 size 函数所返回的一个数组的行数和列数,所以 它可以联合 zeros 函数来创建一个相同大小零矩阵。下面是一些用到 zeros 函数的例子。

a=zeros(2);
b=zeron(2,3);
c=[1 2;3 4];
d=zeros(size(c))

这些语句产生下列的数组

                                                       

相似地,ones 函数产生的数组包含的元素全为 1,eye 函数通常用来产生单位矩阵,只有对 角线的元素为 1.其他元素为 0.表 2.1 列出一些用于初始化变量的函数

用关键字input初始化变量

关键字 input 用来提示使用者和直接从键盘输入初始化变量.当脚本文件(Script files)时, 它可以用来提示使用者输入.input 函数在命令窗口(The Command Windows)显示提示语句,并 等待用户输入一个值.例如,下面的赋值语句:

my_val=input('Enter an input value:')

当这个语句被编译时,MATLAB 打印出字符串 enter an input value:,然后等待用户回复. 如果要只输入一个数,那么只需要直接键入,如果要输入一个数组,则必须带上中括号([]).不管 怎样, 当按下回车键时.在窗口输入的任何值都会被储入变量 my_val.如果只按下回车键,那么 这个变量就存储了一个空矩阵.

如果 input 函数中有字符's'做为它的第二个参数,输入的数据就被当字符串.因此,语句1

>>in1 = input('enter data:');
Enter data:1.23
>>in2 = input('enter data:','s')
Enter data:1.23

把数值1.23储存到in1中,而语句2把字符串储存到in2中。

发布了4 篇原创文章 · 获赞 53 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/new_bee712/article/details/81174933