3.10 数组构作技法综合[ * 例 3.10-1 ]数组的扩展.(1),数组的赋值扩展法a=reshape(1:9,3,3) % 创建 数组 aa =1 4 72 5 83 6 9 a(5,5)=111 % 扩展为 数组.扩展部分除 (5,5) 元素为 111 外,其余均为 0 .a =1 4 7 0 02 5 8 0 03 6 9 0 00 0 0 0 00 0 0 0 111 a(:,6)=222 % 标量对子数组赋值,并扩展为 数组.a =1 4 7 0 0 2222 5 8 0 0 2223 6 9 0 0 2220 0 0 0 0 2220 0 0 0 111 222 (2),多次寻访扩展法 aa=a(:,[1:6,1:6]) % 相当于指令 repmat(a,1,2) ,读者可以试试.aa =1 4 7 0 0 222 1 4 7 0 0 2222 5 8 0 0 222 2 5 8 0 0 2223 6 9 0 0 222 3 6 9 0 0 2220 0 0 0 0 222 0 0 0 0 0 2220 0 0 0 111 222 0 0 0 0 111 222 (3),合成扩展法b=ones(2,6) % 创建 全 1 数组b =1 1 1 1 1 11 1 1 1 1 1 ab_r=[a;b] % 行数扩展合成ab_r =1 4 7 0 0 2222 5 8 0 0 2223 6 9 0 0 2220 0 0 0 0 2220 0 0 0 111 2221 1 1 1 1 11 1 1 1 1 1 ab_c=[a,b(:,1:5) ] % 列数扩展合成ab_c =1 4 7 0 0 222 1 12 5 8 0 0 222 1 13 6 9 0 0 222 1 10 0 0 0 0 222 1 10 0 0 0 111 222 1 1 [ * 例 3.10-2 ]提取子数组,合成新数组.a % 重显 a 数组a =1 4 7 0 0 2222 5 8 0 0 2223 6 9 0 0 2220 0 0 0 0 2220 0 0 0 111 222 ab_ba=tri (a,1)+tril(a,-1) % 利用操作函数,使主对角元素为全 0ab_ba =0 4 7 0 0 2222 0 8 0 0 2223 6 0 0 0 2220 0 0 0 0 2220 0 0 0 0 222 ab1=[a(1:2,end:-1:1);b(1,:)] % 灵活合成ab1 =222 0 0 7 4 1222 0 0 8 5 21 1 1 1 1 1 [ * 例 3.10-3 ]单下标寻访和 reshape 指令演示.clear % 清除内存变量a=reshape(1:16,2,8) % 变一维数组成 数组a =1 3 5 7 9 11 13 152 4 6 8 10 12 14 16 reshape(a,4,4) % 变 数组为 数组ans =1 5 9 132 6 10 143 7 11 154 8 12 16 s=[1 3 6 8 9 11 14 16]; % 定义"单下标"数组a(s)=0 % 利用"单下标"数组对 a 的元素重新赋值a =0 0 5 7 0 0 13 152 4 0 0 10 12 0 0 [ * 例 3.10-4 ]"对列(或行)同加一个数"三种的操作方法.clear,a=reshape(1:9,3,3)a =1 4 72 5 83 6 9 b=[1 2 3];a_b1=a-b([1 1 1],:) % 使 a 的第 1,2,3 行分别减 b 向量 [1 2 3]a_b1 =0 2 41 3 52 4 6 a_b2=a-repmat(b,3,1)a_b2 =0 2 41 3 52 4 6 a_b3=[a(:,1)-b(1),a(:,2)-b(2),a(:,3)-b(3)]a_b3 =0 2 41 3 52 4 6 [ * 例 3.10-5 ]逻辑函数的运用示例.randn( state ,1),r=randn(3,6) % 创建正态随机阵r =0.8644 0.8735 -1.1027 0.1684 -0.5523 -0..0942 -0.4380 0.3962 -1.9654 -0.8197 -0.2546-0.8519 -0.4297 -0.9649 -0.7443 1.1091 -0.2698 l=abs(r)0.5|abs(r)1.5 % 不等式条件运算,结果给出逻辑数组l =0 0 0 1 0 01 1 1 1 0 10 1 0 0 0 1 r(l)=0 % "逻辑 1 " 对应的元素赋 0 值.r =0.8644 0.8735 -1.1027 0 -0.5523 -0. 0 0 0 -0.8197 0-0.8519 0 -0.9649 -0.7443 1.1091 0 s=(find(r==0)) % 利用 find 获得符合关系等式条件的元素"单下标"s =2 5 6 8 10 11 17 18 r(s)=111 % 利用"单下标"定位赋值r =0.8644 0.8735 -1.1027 111.0000 -0.5523 -0..0000 111.0000 111.0000 111.0000 -0.8197 111.0000-0.8519 111.0000 -0.9649 -0.7443 1.1091 111.0000 [ii,jj]=find(r0);