matlab语句
- MATLAB语句的一般形式为:变量 = 表达式
说明:- 1.若变量和“=”省略,则名为ans的变量自动建立;
- 2.如果你输入了一个语句并以回车结束,则在工作区中显示计算的结果;
- 3.如果语句以分号“;”结束,MATLAB只进行计算,不显示计算的结果;
- 4.如果一个变大时太长,可以用续行号 … 将其延续到下一行。此外,一行中可以写几个语句,他们之间要用逗号或分号分开。
matlabz中变量
对于变量,MATLAB不需要任何类型的说明或维数语句。当输入一个新变量名时MATLAB自动建立面变量并为其分配内存空间。
MATLAB有几个特殊的量
- 1.Pi圆周率π
- 2.Eps最小浮点数
- 3.Inf正无穷大,特指1/0
- 4.NaN不定值,特指0/0
- 5.i,j虚数单位
- 6.自然对数
MATLAB中变量的命名规则是:
- 变量名必须是不含空格的单个词;
- 变量名区分大小写;
- 变量名最多不超过19个字符;
- 变量名必须以字母打头,之后可以是 任意字母、数字或下划线,变量名中,不允许使用标点符号.
- matalab中Π默认为3.1416(应该)
- 数据显示默认为四位,但只是matlab对数据的显示方式,其实不管显示的有效位数是多少,都不影响实际的计算结果,也不会有多大的累计误差。有效位数是4或8位,其计算结果的误差是一样的。
matlab运算符
A*B
A与B相乘A.*B
A与B相应元素相乘(A、B为同纬度的矩阵)A/B
A与B相除(A、B为数值或矩阵)- 注意跟c/c++中不同,matlab中除法后可为小数,不一定就是整数
A./B
A与B相应元素相除(A、B为同纬度的矩阵A^B
A的B次幂(A、B为数值)A.^B
A的每个元素的B次幂(A、B为同纬度的矩阵)- 幂方在矩阵之间只能点乘。
符号
- 分号 ; 表示分隔不想显示计算结果的各语句;矩阵行与行的分隔符
- 续行号 … 长命令行需分行时连接下行用
- 逗号 , 表示分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符
- matlab中用~代替!
matlab输入
- 函数:
a=input(‘please input a number:’);
b=input(‘请输入一个字符串:’,’s’);
c=input(‘请输入一个矩阵:’);
- 赋值:
a=3;A=4;(变量赋予数值)
` a=A;(变量赋予变量)` ` a=‘a’;(变量赋予字符串)` ` a=zeros(m,n);a=ones(m,n);(变量赋予矩阵)`
matlab输出
- 不加分号:a=3 a=b a=‘a’ a=zeros(m,n)
- 函数1:
fprintf()
` fprintf(fid,format,A)`
- fid:输出的位置,如果缺省,则输出在命令窗口
- format:输出内容的类型
(类型包括:%d:整数 %e:实数 %s:字符串 %f:浮点数) - A:输入内容的变量名
fprintf('')
是必须写的,真正输出的语句在单引号中间。
屏幕输出简单的方法是直接写出欲输出的变量或数组名,后面不加分号。此外,可 以采用 disp 语句,其调用格式为 disp(x)。
- 函数二:disp()
disp(‘A’);
disp(‘numstr(12)’) ;
%%numstr()是将其他类型的变量转化成字符串的形式disp(zeros(m,n));
1
2
3
4
5
6clc,clear;
result = 0;
for i=3:2:101
result = result + i;
end
disp(result)
- 函数二:disp()
MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果.
- “%” 后面所有文字为注释.
- “…”表示续行.
mat文件
- mat文件是matlab的数据存储的标准格式。mat文件是标准的二进制文件,还可以ASCII码形式保存和加载,在MATLAB中打开显示类似于单行EXCEL表格。
- MATLAB是解释型语言,就是说MATLAB命令行中敲入的命令在当前MATLAB进程中被解释运行。但是,每次执行一个任务时敲入长长的命令序列是很烦人的。有两种方法可以使MATLAB的力量得到扩展——脚本和函数。这两种方法都用像emacs一样的文本编辑器中编写的m文件(因为扩展名是.m所以这样命名,m文件还称点m文件)。m文件的好处在于它可以保存命令,还可以轻易地修改命令而无需重新敲入整个命令行。
- 所谓mat文件,就是由matlab语言编写的可在matlab语言环境下运行的程序源代码文件。Matlab语言的m文件可分为命令式和函数式两种形式。M文件可在matlab程序编辑器里编写,也可在其他文本编辑器中编写,并以”.m”为拓展名保存。
循环
for循环
for 循环允许一组命令以固定的和预定的次数重复。for 循环的一般形式是
1
2
3for 循环控制变量=表达式 1:表达式 2:表达式 3
语句
end表达式 1 的值为循环控制变量的初值;表达式 2 的值为步长,每执行循环体一次,循 环控制变量的值将增加步长大小。步长可以为负值,当步长为 1 时,表达式 2 可省略;表 达式 3 为循环控制变量的终值,当循环控制变量的值大于终值时循环结束。在 for 循环中, 循环体内不能出现对循环控制变量的重新设置,否则将会出错;for 循环允许嵌套使用。
initval:endval
increments the index variable from initval to endval by 1, and repeats execution of program statements until index is greater than endval.当条件为i == endval时,会执行一遍循环体再结束循环,与c++/c不同
使用 for 循环语句值得注意的是
for循环不能用循环内重新给循环变量赋值来终止
1
2
3
4
5
6
7
8
x=0;
for n=1:4
x =x+1
n=5;
end
- for 循环的循环变量= [表达式 1:表达式 2:表达式 3],其实为一行向量,例如: `[1:2:10]=[ 0 2 4 6 8 10]`,它还可以是数组,其更一般的形式为 `for 循环控制变量 = 数组表达式 语句 end `
- 【例 6.5】 用 for 循环求行向量[-2,5,3,6,-2]各元素之和。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
a=[-2,5,3,6,-2];
s=0;
k=0;
for n=a
n %显示每一次循环变量的值
k=k+1; %记录循环次数
s=s+n; %计算行向量 a 各元素之和
end
k,s %显示总的循环次数和计算结果
运行结果为
n = -2
n = 5
n = 3
n = 6
n = -2
k = 5
s = 10
可以看出,总循环次数为 5,第 i 次循环时循环变量的值为 a(i),计算结果为行向量 a 各元素之和。
- 当有一个等效的数组方法来解给定的问题时,应避免用 for 循环。
- 【例 6.9】 比较下面两段程序的执行情况。
1 |
|
- 为了得到更快的速度,在 for 循环(while 循环)被执行之前,应预先分配数组。如例 6.9(a),在 for 循环内每执行一次命令,变量 x 的大小增加 1,迫使 MATLAB 每进行一次循 环都要花费时间对 x 分配更多的内存。为了省去这个步骤,可以在例 6.9(a)程序的首行加入:
x=zeros(1,10); %为 x 分配内存单元
while循环
- 其一般形式为
1 |
|
if expression
statements
elseif expression
statements
else
statements
end
`