- 在线时间
- 2759 小时
- 最后登录
- 2017-9-15
- 注册时间
- 2011-4-3
- 听众数
- 538
- 收听数
- 4
- 能力
- 80 分
- 体力
- 1764 点
- 威望
- 27 点
- 阅读权限
- 150
- 积分
- 5990
- 相册
- 0
- 日志
- 0
- 记录
- 5
- 帖子
- 6675
- 主题
- 3503
- 精华
- 8
- 分享
- 6
- 好友
- 1721
TA的每日心情 | 开心 2017-2-7 15:12 |
---|
签到天数: 691 天 [LV.9]以坛为家II
 群组: 2013年国赛赛前培训 群组: 2014年地区赛数学建模 群组: 数学中国第二期SAS培训 群组: 物联网工程师考试 群组: 2013年美赛优秀论文解 |
21、ndi***ength在多维数组中的注意事项
* O% F- s7 o/ ^numel是用来查询矩阵所含元素总数的函数,例numel(A)
$ }. T" {4 `: D, q" {+ rndims是用来查询矩阵所含维数的函数,例ndims(A) 8 C1 H) f! g, a! E3 d' w
ndims(A(:,:,1))返回结果是2,因为A的第三维只有1维,那么实际上A只是一个二维矩阵;
) [* t! I& m/ ]# ?+ Llength只能返回一维数组的长度,对于矩阵就必须用size将其化为一维数组之后再用length函数 8 U' c+ M- X, d. F$ Y
length(A)将得到size(A)的结果中较大的那一个元素;
* S5 v& o( p$ Z/ R' L. o& d/ xlength(size(A))才能得到A的维数;4 q' J& e2 v6 D3 M$ W. {
4 X+ ]2 C2 D. a$ y9 m22、创建单元数组(记得留意大括号{},等号两边至少要有一个大括号,否则会报错,因为单元数组能够容纳的内容要多,而数组中的元素只能容纳一个字符或数字,另外,单元中可以包含另一个单元) 5 J9 T: g% R! ]. a: t+ h
1、 单元索引法: " Z* ~( A; b. u3 k0 n7 u& ^8 o
A(1,1)={[1 2 3 ;4 5 6;7 8 9]}; $ K' {" Y/ j- ~; T7 K. E
A(1,2)={'example'}; 4 G6 t. n2 a) W; T
A(2,1)={1+2i};
4 k2 u1 c! u4 v {3 K2 gA(2,2)={6:-1:1}; 1 `8 i) | R, M A' J' g/ N3 m4 h
输出结果: : p. }( D4 n/ o: n2 U
; i, t2 ]; |$ v7 ~, kA = % x; u/ @' Z- e' {
2 c, A7 B4 w0 c6 z4 R' ~
[3x3 double] 'example' " e( A/ r a" @2 G1 G
[1.0000 + 2.0000i] [1x6 double]
7 [; K! I! b- q( m5 I8 B" ~7 {% U0 E; ^% P
2、 内容索引法: 7 g4 s/ X- M5 _
A{1,1}=[1 2 3 ;4 5 6;7 8 9];
* Z' n' M4 [8 a+ o: `: a1 P" n7 [A{1,2}='example'; " _4 r' b- F4 U' `: `4 ^
A{2,1}=1+2i;
& T6 c; R7 n2 h5 m/ B9 K9 ] Q, mA{2,2}=6:-1:1;
- I8 I% c$ [5 t- v g: b6 j3 e. k9 `7 N2 y. z
A(I,j)={x}和A{I,J}=x都表明将x的值保存于单元数组A的第(I,j)个元素中。其中,前者A(I,j)={x}被称为“按单元索引”,后者A{I,J}=x被称为“按内容索引”。换句话说,花括号{}用于访问单元的值,而圆括号()用于标识单元的位置而不访问它们的值。
. i' {2 c& o' R例: $ d0 E9 p0 ]( ?' D9 X }8 H
A{1,1}=[1 2 3 ;4 5 6;7 8 9] / _ g2 x3 W! k) {' b% [7 T7 H; |
A(1,1)=[ 3x3 double]
7 P3 c# H$ `! s4 T( W" B花括号在等号左边时:可以对多个单元数组的数据进行输出;
: e' q# W( f& @. z9 k6 h9 B2 @例:A{1,:}=1:5,将会报错;错误原因是A{1,:}没有指定多少个单元数组将要被赋值 # y6 W% x, H) t1 e# m; `: H
花括号在等号右边时:可以对多个单元数组的数据进行输入;
4 j f* M2 W, I3 k' x例:A(1, ={1:5},将会将A的第一行单元数组从左至右依次赋值为1、2、3、4、5;
1 A* e o {6 a' |$ W- [9 ]$ Y- O5 m
celldisp(A)用于强制输出单元数组A中的内容,联想记忆:cell+disp--------display展示
3 C, N9 b0 \" A% Ccell(I,j)用于生成指定大小的空单元数组
) P6 |$ b: z; G* K* x7 i) C1 A- a# V q0 U6 e8 H8 f
9 t' ?. H3 k# R. Q) w6 U>> class(B{1,1})%按内容索引 3 @6 Q0 {$ ^ t; N$ G E' h5 j9 p8 J
% E7 M1 e. }' Q; pans =
4 ~* z0 \9 q5 w) e/ T, w( f- T( }' Q/ _; h; o. m( P
double
% q& w8 t7 c) T1 d8 `$ F
9 N; O T4 f0 `$ }- U0 `, C>> class(B(1,1))%按单元索引
! {& b# V; E; `+ p1 b z R' p9 {
ans = 4 B3 Y0 E! p6 K7 A6 K. q2 f
! @0 M8 B1 ?- l6 [8 i
cell 4 @5 @5 T3 `: d, y1 O
由上面的例子可以看出“由单元索引”和“由内容索引”的结果是完全不同的,“按单元索引”得到的是单元的标识(即单元里是什么类型的值),“按内容索引”得到的是单元的内容(即单元里是什么值)
/ g; w3 U& z! Q) Q; Z! F) P2 K0 Q
. J& N, p9 s& a2 W* h
% ~# [/ W* c5 v4 S0 T& D& Q
. ]2 t1 `: @% u. ^4 G* o1 m' @9 ^/ Q" J1 O) B" Q& `" T
# ]9 t% z. e0 {- Y t' M% c8 R; y
|
zan
|