- 在线时间
- 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在多维数组中的注意事项
7 Y0 X% Q! q! a4 V7 J: A; Inumel是用来查询矩阵所含元素总数的函数,例numel(A)
5 i6 s# a$ _2 i+ L0 W9 andims是用来查询矩阵所含维数的函数,例ndims(A) ( U4 A5 m' m- c5 T. h z
ndims(A(:,:,1))返回结果是2,因为A的第三维只有1维,那么实际上A只是一个二维矩阵; G7 D' ]: n' j' O
length只能返回一维数组的长度,对于矩阵就必须用size将其化为一维数组之后再用length函数
" c/ s: D0 K0 J; glength(A)将得到size(A)的结果中较大的那一个元素; # ~7 t" x7 ?9 z( y
length(size(A))才能得到A的维数;
7 F8 @* i8 i2 k$ |+ O, d; x I/ J; n4 h! j3 \4 U/ j
22、创建单元数组(记得留意大括号{},等号两边至少要有一个大括号,否则会报错,因为单元数组能够容纳的内容要多,而数组中的元素只能容纳一个字符或数字,另外,单元中可以包含另一个单元)
5 f& B, v/ g4 A8 G( g# V1、 单元索引法: # M+ `% T0 f X! C) A' f
A(1,1)={[1 2 3 ;4 5 6;7 8 9]};
8 \* q6 u) O8 F: n0 yA(1,2)={'example'}; 9 R9 M) B- U: A' ?1 g: J0 g, Z/ s
A(2,1)={1+2i}; 9 b7 D- |, Y' T& p ?
A(2,2)={6:-1:1}; ( D; ]3 g# n" G, f0 k) D2 `
输出结果:
! `, ?; a* u0 X+ H+ u! f/ y5 h0 Z' U1 h: T# ~9 J% u& p! c2 F" t) Y
A = ) q' h8 {" q! ?8 m, r9 q
/ m/ n+ G* X# K- E1 m& m: D
[3x3 double] 'example'
/ b( W/ X3 \5 L! ^9 a f( p[1.0000 + 2.0000i] [1x6 double] ' G( n& m& X& T1 _, N, X; B- X
" A! {, u8 ~ \! U0 z
2、 内容索引法: 5 V: j. ]+ b& ?) x0 T! ^( E
A{1,1}=[1 2 3 ;4 5 6;7 8 9]; 6 D# u% z% _2 f y
A{1,2}='example';
" n* s$ W6 g, W6 j) M6 |( hA{2,1}=1+2i;
- T8 S' ~* k% [9 u6 j- lA{2,2}=6:-1:1;
- g% o, @& u: I1 s0 }4 u$ T5 w5 R6 `5 S$ M
A(I,j)={x}和A{I,J}=x都表明将x的值保存于单元数组A的第(I,j)个元素中。其中,前者A(I,j)={x}被称为“按单元索引”,后者A{I,J}=x被称为“按内容索引”。换句话说,花括号{}用于访问单元的值,而圆括号()用于标识单元的位置而不访问它们的值。
' @7 Y$ \2 h1 |/ C* v" h0 _" @例: , [3 i8 n5 O( O) T% }( m
A{1,1}=[1 2 3 ;4 5 6;7 8 9]
; X4 H F+ e' B RA(1,1)=[ 3x3 double]
; N9 y' w" L$ L0 v" a花括号在等号左边时:可以对多个单元数组的数据进行输出; + Q4 G. S$ O9 r1 k4 g0 y! }+ t# B
例:A{1,:}=1:5,将会报错;错误原因是A{1,:}没有指定多少个单元数组将要被赋值
% C; X0 W5 c- c/ O. v花括号在等号右边时:可以对多个单元数组的数据进行输入;
9 a5 m. Z# I" z9 J" s# A例:A(1, ={1:5},将会将A的第一行单元数组从左至右依次赋值为1、2、3、4、5; ; L1 H7 f. T6 |$ B' z( [ X
- N R$ k& H0 jcelldisp(A)用于强制输出单元数组A中的内容,联想记忆:cell+disp--------display展示
7 N' A ?) ^: J3 s3 T) }cell(I,j)用于生成指定大小的空单元数组 ! I. b. W6 F8 [9 ?+ ^5 `" D
" Z% d) D8 h. J, ^9 |2 I+ }4 }+ C, j- g" x+ P9 y
>> class(B{1,1})%按内容索引 % r2 m+ ] s- ]0 d3 u
: y; m5 R. Q! b0 Q
ans =
) i3 S8 G! v; W* m4 ?/ L; @0 {8 ~( T! K- I
double
1 p0 ^/ Y, x9 I" |7 S. j& F9 [
7 y% u1 b. D6 B& @6 O>> class(B(1,1))%按单元索引 : z3 B: N+ M( j" I6 Y+ e( ~5 B
& p8 V4 w1 l' S s. z# c: [ans = 6 D7 o; t. g: v) D. B, u, Z/ G
" V! K. @; {" E8 A+ H1 u! c6 ~# rcell
1 m9 a) |0 D( d( o1 l由上面的例子可以看出“由单元索引”和“由内容索引”的结果是完全不同的,“按单元索引”得到的是单元的标识(即单元里是什么类型的值),“按内容索引”得到的是单元的内容(即单元里是什么值)
- b4 }' V# o7 @, E
; m5 h$ J S `3 ^) ~: }6 c
. o) o+ a* z" s: l3 R% x
1 W ~ D" y' S
2 C9 }& H/ `' s+ W& O* u1 I- z! x0 R7 N
2 @. t! O, B$ y9 W# T" ~2 o1 c |
zan
|