- 在线时间
- 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在多维数组中的注意事项
8 \, A/ r2 j0 w7 i6 hnumel是用来查询矩阵所含元素总数的函数,例numel(A)
7 Y! t/ t( x0 m" Y9 b0 andims是用来查询矩阵所含维数的函数,例ndims(A)
2 P: F6 u0 K6 F$ {ndims(A(:,:,1))返回结果是2,因为A的第三维只有1维,那么实际上A只是一个二维矩阵;
* \9 i3 J0 C& T" k, Y$ Llength只能返回一维数组的长度,对于矩阵就必须用size将其化为一维数组之后再用length函数
! N0 z5 U7 f7 N- o8 v2 k- n. slength(A)将得到size(A)的结果中较大的那一个元素;
% U5 p" b8 O7 N6 \9 e B* Ylength(size(A))才能得到A的维数;
: H5 ?0 r! D& L2 x- r6 ]* \. z7 A: d# L4 E$ _( E
22、创建单元数组(记得留意大括号{},等号两边至少要有一个大括号,否则会报错,因为单元数组能够容纳的内容要多,而数组中的元素只能容纳一个字符或数字,另外,单元中可以包含另一个单元) ! y7 d9 Q; [- |' j6 t
1、 单元索引法:
" v- C8 G' ~5 S+ iA(1,1)={[1 2 3 ;4 5 6;7 8 9]}; & `6 w+ a: F% N& f- q9 f
A(1,2)={'example'};
r) t( }2 u8 _& H9 L! y7 DA(2,1)={1+2i};
/ z2 f6 W& }" N0 e. K m# V QA(2,2)={6:-1:1};
; `+ o+ O9 E8 r7 Y/ _2 M. l3 E输出结果: - ]) e3 s& ~1 j) u9 v4 `: B
) i, s3 c0 R6 R" z
A =
8 m1 V% a, b9 S; n( {% a
7 i4 ^3 u6 G5 G[3x3 double] 'example'
$ ?! Q* D. P% `[1.0000 + 2.0000i] [1x6 double]
/ G/ B/ b( i, I7 X8 Q# G q% u4 G' o, Y$ {! n. A% k! ]* u( a
2、 内容索引法:
( D+ `8 ^$ \, M5 z; `6 n4 I2 v" A0 gA{1,1}=[1 2 3 ;4 5 6;7 8 9]; % @! \1 w% n$ V% L g& p" [
A{1,2}='example'; 6 h* ?' U r# r, Y$ C* r5 t# x g
A{2,1}=1+2i;
# \+ v% C8 L7 c# ?8 \: x$ vA{2,2}=6:-1:1;
9 R+ t0 ~$ y* W" K6 s
0 m6 p7 T6 ^: v% @A(I,j)={x}和A{I,J}=x都表明将x的值保存于单元数组A的第(I,j)个元素中。其中,前者A(I,j)={x}被称为“按单元索引”,后者A{I,J}=x被称为“按内容索引”。换句话说,花括号{}用于访问单元的值,而圆括号()用于标识单元的位置而不访问它们的值。 5 _3 @6 N, Y; A- h$ m, W
例:
8 N. b! v- V, O( fA{1,1}=[1 2 3 ;4 5 6;7 8 9] ( e/ U& t; S. D' q. f6 m5 @! B
A(1,1)=[ 3x3 double] + ^: Q9 H% `* v8 c
花括号在等号左边时:可以对多个单元数组的数据进行输出; 8 _# t, m" E" X" b' `' M% u& y
例:A{1,:}=1:5,将会报错;错误原因是A{1,:}没有指定多少个单元数组将要被赋值
6 Y$ ?' R4 ?1 ^4 A" l% H |8 u9 c花括号在等号右边时:可以对多个单元数组的数据进行输入;
7 O2 o j; c6 N1 m9 i例:A(1, ={1:5},将会将A的第一行单元数组从左至右依次赋值为1、2、3、4、5;
) z8 j0 [3 B$ h7 U/ w& b6 j* C. @* }2 y/ w9 m
celldisp(A)用于强制输出单元数组A中的内容,联想记忆:cell+disp--------display展示
- W. c+ x" a& D+ r) ~! vcell(I,j)用于生成指定大小的空单元数组 " k: F3 c# O' ?% s: o
|4 C3 q! x. z, P1 Q
. X2 S% c& y8 R6 _* B" P4 \>> class(B{1,1})%按内容索引
' u: i N( A" g& Y- n/ d, B9 Z4 Q' |% ~) L
ans =
- N$ t, q% N# q" C" g) M* Y) P! u% H- {5 C
double 0 u9 M5 A1 i: f6 c
) _4 H! z) s* S: y$ }. l
>> class(B(1,1))%按单元索引 8 x7 E4 W* X8 j9 b% Y3 C
" d3 F X& w, }; r9 z% h/ k" y' q; U7 [
ans = 0 s# G+ u" Y# h2 u, e
1 Y/ F- D/ d D$ w+ V
cell
/ L% P' H% O9 A由上面的例子可以看出“由单元索引”和“由内容索引”的结果是完全不同的,“按单元索引”得到的是单元的标识(即单元里是什么类型的值),“按内容索引”得到的是单元的内容(即单元里是什么值)- R/ A0 J6 K! n
* b8 T3 q8 U7 b; {5 p$ I4 A
8 g M0 I) q1 N4 O0 c6 z/ p, e; e
, x' p7 P! O$ W1 C) _- O* `' K
: p; _, B( j% Y7 z0 N8 B* k N5 @" v' F- {1 ?. D, R
5 g; E3 t+ X# F+ ?" m m
|
zan
|