变量和数组MATLAB程序的基本数据单位为数组,标量在MATLAB中也作为数组处理
数组可以定义为向量(通常描述为一维数组)或矩阵(通常描述为二维或多维)
访问数组中的元素:数组名+()
MATLAB变量名称命名:以字母开头,可以与字母、数字和下划线一起使用,只有前31个字符有效
区分字母的大小写
强型语言就像c语言一样:
int a; 双b; 弱类型的语言像Matlab、Python一样:
c='l am a student'%变量不需要设置变量类型%,只需要以复制形式创建类型,变量类型通过创建时类型变量的初始化赋值语句进行初始化
input函数通过键盘输入初始化变量
ans=0说明输入不是整形
从文件读取数据
在数组中输入的每行的元素数必须全部相同。 另外,各列的要素数也必须全部相同
对数组中元素的访问以数组名 (number)的形式,number是从1开头。
a1=[ 0,2,4 ];
b=[a1(2) a1];
B
b=
2 0 2 4定义4数组时,并不是所有的元素都被定义
c (2,3 )=5
c=
0 0 0 0 0 5为数组中的一个元素赋值,其馀的默认值为零
如果代入数组的元素超过数组的大小,就会创建新的数组。 (国语水平不高,还是matlab初学者,敬请谅解。 读一下代码就知道了。 )
d=[ 1,4 ]
d=
4d(3)=8
d=
1 4 8每个语句最后的分号用于精简命令窗口中的重复变量值
公式替代matlab中的克隆运算符是first:incr:last(开始位置、步骤、结束位置)
x=1:2:10
x=
与3579python的切片相似
a=[ 1,2,3,4,5,6,7,8 ] fori ina [ :3360-1 ] 3360 print (I )的结果为8(7(6)5)4)3) 1
但是,Python的第一个是开始位置,第二个是结束位置,最后是步骤
matlab的0.01表示注意
x=(01:01:1 ) pi
%该公式的开始在0.01步为0.01,结束位置为0.1
x=
1~8列
0.03140.06280.09420.12570.15710.18850.21990.2513至10列
0.2827 0.3142替换运算符'(英语单引号) d=[1:5]
d=
1345 h=[ d’]
h=
1345zeros函数(全零矩阵(a=zeros(2) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
a=
如果只有一个0 0 0 0 %参数,则生成n次矩阵,如果给定了m、n这两个参数,则生成mXn矩阵
b=zeros (2,4 ) ) ) ) ) ) ) ) ) b ) ) ) ) ) b ) ) ) b ) ) ) b ) ) ) ) b ) ) ) ) b ) ) ) ) ) b ) ) ) ) b ) ) ) ) ) 652 ) ) ) ) )
b=
0000000ones(n ) and one(m ) m,n )用一个参数生成n次矩阵
生成两个参数,mXn矩阵,eye函数相同
创建完整1矩阵
a=ones(3)
a=
111111111 a=ones (3,4 ) ) ) ) ) ) ) ) ) ) ) ) 111111111 a ) ) ) ) ) )。
a=
11111111111b=eye(2) ) ) )
eye(n ) and eye(m ) m,n )生成单位矩阵
b=
1001 b=eye (2,3 ) ) ) ) ) ) ) ) 1001 b=eye (2,3 ) ) ) ) ) ) 1001 b=eye (2,3 ) ) )
b=
1 0 0 0 1 0矢量或数组的长度(取最大值) length(b ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
ans=
3 size (矩阵大小) size
(b)ans =
2 3 矩阵、数组、向量A=[1,2;3,4;5,6]
A =
1 2 3 4 5 6B=[1,2,3,4]
B =
1 2 3 4C=[B’]
C =
1 2 3 4A是2X3的矩阵,B是一个一维行向量,C是一个一维行向量
多维数组 c(:,:,1)=[1,2,3;4,5,6]c1(:,:,2)=[1,2,3;4,5,6]c =
1 2 3 4 5 6whos c
Name Size Bytes Class Attributes
c 2x3 48 double
c1(:,:,2) =
whos c1
Name Size Bytes Class Attributes
c1 2x3x2 96 double
MATLAB中以列主导顺序分类数组中的元素
a=[1,2,3;4,5,6;7,8,9;10,11,12]
a =
1 2 3 4 5 6 7 8 910 11 12a(4)
ans =
10a(2)
ans =
4a(5)
ans =
2a(1,2)
ans =
2a(4,1)
ans =
10数组名(object),object可以是一个数字(第几个),也可以是两个数字(几行几列)
子数组使用克隆运算符
a(:,1:1:3)
ans =
1 2 3 4 5 6 7 8 910 11 12a(:,1:2:3)
ans =
1 3 4 6 7 910 12a(:,1:3:3)
ans =
1 4 710a(1,:)
ans =
1 2 3a(2,:)
ans =
4 5 6a(3,:)
ans =
7 8 9a(4,:)
ans =
10 11 12a(5,:)
索引超出矩阵维度。
a(:,1)
ans =
1 4 710a(:,2)
ans =
2 5 811a(:,3)
ans =
3 6 912a(:,4)
索引超出矩阵维度。
a
a =
1 2 3 4 5 6 7 8 910 11 12a(3:end,3:end)
ans =
912这里的a(行,列),类似于Python中的索引(切片)
x=[1,2,3,4,5,6,7,8]print(x[3:])
将会从下标为3的元素开始直到结束
a
a =
1 2 3 4 5 6 7 8 910 11 12a(1:3,[2,3])=[22,33;55,66;88,99]
% 1:3 表示1到3行,[2,3]表示2到3列剩下的为更换的值,更换的值也可以用一个数字表示,则所要更改的元素都为该数字
a =