MATLAB学习笔记(一)
2015-04-22
几个全局性质的常识:
1、MATLAB的编号一般从1开始,这与大多数从0开始的语言不同
>> A = rand(1,10) A = 0.1821 0.0418 0.1069 0.6164 0.9397 0.3545 0.4106 0.9843 0.9456 0.6766 >> A(1) ans = 0.1821
2、说有的范围值判断都使用‘<=’,这点与绝大多数语言(如Python)不同,如下:
>> A(1:3:10)
ans =
0.1821 0.6164 0.4106 0.6766
用C#描述 A(1:3:10) 为 for(i=1;i<=10;i+=3)
是的,我三心二意,昨天还在学Python的,怎么着
1、矩阵也可以使用比较运算
>> A = rand(3) A = 0.2751 0.2277 0.0300 0.2486 0.8044 0.5357 0.4516 0.9861 0.0871 >> B = A>0.5 B = 0 0 0 0 1 1 0 1 0 >> class(B) ans = logical >> class(A) ans = double
2、用矩阵做另一个矩阵的索引
>> A = rand(2) A = 0.8990 0.1379 0.6259 0.2178 >> B = A>0.5 B = 1 0 1 0 >> C = A C = 0.8990 0.1379 0.6259 0.2178 >> A(B)=0 A = 0 0.1379 0 0.2178 >> C(~B)=0 C = 0.8990 0 0.6259 0
注意这个奇特的用法 C(~B) 表示先对B矩阵取反,然后再索引
3、矩阵裁剪
方法为 A(:,:) ,冒号部分可以用范围替代如 A(1:2:6,:) 表示取1,3,5行或者数组 A([1,2],:) 表示取1,2行或者直接元素 A(3,:) 表示取第3行。
另外对特点行赋空可以删除该行 A(1,:) = [] 删除第一行所有元素