发布企业信息

MATLAB 数组构作技法综合

作者:未知  信息来源:未知  2006-1-26

字体大小:  网友评论  进入论坛  

10 数组构作技法综合【 * 例 3。10-1 】数组的扩展。(1)、数组的赋值扩展法A=reshape(1:9,3,3) % 创建 数组 AA =1 4 72 5 83 6 9A(5,5)=111 % 扩展为 数组。A =1 4 7 0 02 5 8 0 03 6 9 0 00 0 0 0 00 0 0 0 111A(:,6)=222 % 标量对子数组赋值,并扩展为 数组。...



3.10 数组构作技法综合

【 * 例 3.10-1 】数组的扩展。

(1)、数组的赋值扩展法
A=reshape(1:9,3,3) % 创建 数组 A
A =
1 4 7
2 5 8
3 6 9

A(5,5)=111 % 扩展为 数组。扩展部分除 (5,5) 元素为 111 外,其余均为 0 。
A =
1 4 7 0 0
2 5 8 0 0
3 6 9 0 0
0 0 0 0 0
0 0 0 0 111

A(:,6)=222 % 标量对子数组赋值,并扩展为 数组。
A =
1 4 7 0 0 222
2 5 8 0 0 222
3 6 9 0 0 222
0 0 0 0 0 222
0 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 222
2 5 8 0 0 222 2 5 8 0 0 222
3 6 9 0 0 222 3 6 9 0 0 222
0 0 0 0 0 222 0 0 0 0 0 222
0 0 0 0 111 222 0 0 0 0 111 222

(3)、合成扩展法
B=ones(2,6) % 创建 全 1 数组
B =
1 1 1 1 1 1
1 1 1 1 1 1

AB_r=[A;B] % 行数扩展合成
AB_r =
1 4 7 0 0 222
2 5 8 0 0 222
3 6 9 0 0 222
0 0 0 0 0 222
0 0 0 0 111 222
1 1 1 1 1 1
1 1 1 1 1 1

AB_c=[A,B(:,1:5)'] % 列数扩展合成
AB_c =
1 4 7 0 0 222 1 1
2 5 8 0 0 222 1 1
3 6 9 0 0 222 1 1
0 0 0 0 0 222 1 1
0 0 0 0 111 222 1 1


【 * 例 3.10-2 】提取子数组,合成新数组。

A % 重显 A 数组
A =
1 4 7 0 0 222
2 5 8 0 0 222
3 6 9 0 0 222
0 0 0 0 0 222
0 0 0 0 111 222

AB_BA=triu(A,1)+tril(A,-1) % 利用操作函数,使主对角元素为全 0
AB_BA =
0 4 7 0 0 222
2 0 8 0 0 222
3 6 0 0 0 222
0 0 0 0 0 222
0 0 0 0 0 222

AB1=[A(1:2,end:-1:1);B(1,:)] % 灵活合成
AB1 =
222 0 0 7 4 1
222 0 0 8 5 2
1 1 1 1 1 1


【 * 例 3.10-3 】单下标寻访和 reshape 指令演示。
clear % 清除内存变量
A=reshape(1:16,2,8) % 变一维数组成 数组
A =
1 3 5 7 9 11 13 15
2 4 6 8 10 12 14 16

reshape(A,4,4) % 变 数组为 数组
ans =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

s=[1 3 6 8 9 11 14 16]; % 定义“单下标”数组
A(s)=0 % 利用“单下标”数组对 A 的元素重新赋值
A =
0 0 5 7 0 0 13 15
2 4 0 0 10 12 0 0

【 * 例 3.10-4 】“对列(或行)同加一个数”三种的操作方法。
clear,A=reshape(1:9,3,3)
A =
1 4 7
2 5 8
3 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 4
1 3 5
2 4 6

A_b2=A-repmat(b,3,1)
A_b2 =
0 2 4
1 3 5
2 4 6

A_b3=[A(:,1)-b(1),A(:,2)-b(2),A(:,3)-b(3)]
A_b3 =
0 2 4
1 3 5
2 4 6

【 * 例 3.10-5 】逻辑函数的运用示例。

randn('state',1),R=randn(3,6) % 创建正态随机阵
R =
0.8644 0.8735 -1.1027 0.1684 -0.5523 -0.6149
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 0
1 1 1 1 0 1
0 1 0 0 0 1

R(L)=0 % “逻辑 1 ” 对应的元素赋 0 值。
R =
0.8644 0.8735 -1.1027 0 -0.5523 -0.6149
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.6149
111.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(R<0); % 利用 find 获得符合关系等式条件的元素“双下标”
disp(ii'),disp(jj')
3 1 3 3 1 2 1
1 3 3 4 5 5 6

分页:
Google


推荐图文

广告

机械热点图文

  • 数控车床加工编程典型实例分析2
  • 内螺纹车削加工——数控车床编程实例42
  • 子程序编程方法-数控车床编程实例36
  • 塑料模具动画演示

机械风云人物

Copyright © 2004 51base.com Inc. All rights reserved.

无忧基地 版权所有│粤ICP备06098418号│XHTML | CSS

客服:+86-755-2212 2202 工作时间:周1~5 10点~16点

感谢中国网络提供带宽支持

《网络营销技巧》