- 在线时间
- 2759 小时
- 最后登录
- 2017-9-15
- 注册时间
- 2011-4-3
- 听众数
- 538
- 收听数
- 4
- 能力
- 80 分
- 体力
- 1764 点
- 威望
- 27 点
- 阅读权限
- 150
- 积分
- 5990
- 相册
- 0
- 日志
- 0
- 记录
- 5
- 帖子
- 6675
- 主题
- 3503
- 精华
- 3
- 分享
- 6
- 好友
- 1721
TA的每日心情 | 开心 2017-2-7 15:12 |
|---|
签到天数: 691 天 [LV.9]以坛为家II
 群组: 2013年国赛赛前培训 群组: 2014年地区赛数学建模 群组: 数学中国第二期SAS培训 群组: 物联网工程师考试 群组: 2013年美赛优秀论文解 |
21、ndi***ength在多维数组中的注意事项
: K& F: D) \# A" n' J1 O/ Enumel是用来查询矩阵所含元素总数的函数,例numel(A) , K `7 c6 z3 \- i
ndims是用来查询矩阵所含维数的函数,例ndims(A) * B1 `' `$ Q# c0 h& C7 [( U/ C5 |
ndims(A(:,:,1))返回结果是2,因为A的第三维只有1维,那么实际上A只是一个二维矩阵; 5 h$ a* `( g4 x
length只能返回一维数组的长度,对于矩阵就必须用size将其化为一维数组之后再用length函数
7 a, ]5 ^8 w/ J8 Q2 v: m4 Wlength(A)将得到size(A)的结果中较大的那一个元素; ) Y* f2 w9 q2 I2 C9 _" k; w; i7 U7 t
length(size(A))才能得到A的维数;
; t, v, k/ ?4 @6 u6 V
' ?; K/ A2 t6 T- @22、创建单元数组(记得留意大括号{},等号两边至少要有一个大括号,否则会报错,因为单元数组能够容纳的内容要多,而数组中的元素只能容纳一个字符或数字,另外,单元中可以包含另一个单元) : { _* |0 q% j d* Y8 W% F
1、 单元索引法:
! U- h( I4 K" ~" c7 [# WA(1,1)={[1 2 3 ;4 5 6;7 8 9]};
* T: A' s% |7 s! D: |A(1,2)={'example'};
- ?5 O: `8 N; y7 f* O; Z CA(2,1)={1+2i}; : @& r" @* C# u5 O$ S# e
A(2,2)={6:-1:1}; 0 n. G' T! g0 b- y
输出结果:
6 M& L5 Y4 c' H6 p" E
* b$ n* L6 W$ K% @A =
* d; j* p- e% E5 U
$ G# R5 l* }, d+ Y" E5 Z[3x3 double] 'example'
. M" v6 y% d/ |% _[1.0000 + 2.0000i] [1x6 double] % B3 D/ q0 P5 _: U7 T% c
% d) d6 S; h6 J- F, R; Y
2、 内容索引法:
8 V2 C) m5 m. g9 n0 C" ?- t2 T$ qA{1,1}=[1 2 3 ;4 5 6;7 8 9]; 2 ^# G G- ^) [' \& u
A{1,2}='example'; 5 o% @6 C5 G8 [9 Y8 p
A{2,1}=1+2i;
' v _ t1 W* H3 B$ E. X" ]0 s5 _A{2,2}=6:-1:1;
6 r) ~2 ?. V( b* q9 I% m+ _* S1 f7 z% I5 i, R% F
A(I,j)={x}和A{I,J}=x都表明将x的值保存于单元数组A的第(I,j)个元素中。其中,前者A(I,j)={x}被称为“按单元索引”,后者A{I,J}=x被称为“按内容索引”。换句话说,花括号{}用于访问单元的值,而圆括号()用于标识单元的位置而不访问它们的值。 3 H& h# {( D, b9 ]
例:
; v% L8 a+ e/ u, T' l8 {A{1,1}=[1 2 3 ;4 5 6;7 8 9] % y. C& s h! g. P$ F
A(1,1)=[ 3x3 double]
( o( }3 t8 Z, t j: ]; L% X/ V花括号在等号左边时:可以对多个单元数组的数据进行输出;
* D* H4 ?1 I2 i9 {0 I例:A{1,:}=1:5,将会报错;错误原因是A{1,:}没有指定多少个单元数组将要被赋值 , ?5 n$ f% o. Q. W1 @
花括号在等号右边时:可以对多个单元数组的数据进行输入; - P5 O5 }8 m3 N3 h9 R2 O! u
例:A(1, ={1:5},将会将A的第一行单元数组从左至右依次赋值为1、2、3、4、5; 9 h/ ^ f" Q# J" ~
6 k) O: s+ O7 h- Zcelldisp(A)用于强制输出单元数组A中的内容,联想记忆:cell+disp--------display展示 " f! `; n" B: L& U4 z
cell(I,j)用于生成指定大小的空单元数组
, r: ~5 T; `# i; R
' ?! q9 |5 a- m; h1 o; K$ n
* R5 r7 z% _: C: y( @>> class(B{1,1})%按内容索引
$ {. J- J# ^0 W
; X* K% }: }- |ans = . c( P* b/ \2 j3 _
, R$ }* ^: u9 \9 U; h/ R/ s
double - f* \0 S5 I6 N" n4 i, d7 L
$ `* E4 \8 D# F% E" _* L>> class(B(1,1))%按单元索引
; ~# s6 h" C' d3 _: r
L2 l! E, M. t- |; ?$ y+ vans = 7 u: A' I; r9 S3 J
* W6 m9 @* Q2 [" Y4 { c6 ~3 G; J# R' |
cell " Z6 \* n, l& V5 d) k) `" G6 x+ h
由上面的例子可以看出“由单元索引”和“由内容索引”的结果是完全不同的,“按单元索引”得到的是单元的标识(即单元里是什么类型的值),“按内容索引”得到的是单元的内容(即单元里是什么值)& ?- g7 }7 \+ _; r c# }
% I/ ?0 p1 O6 L: c0 y, [5 k: I( Q3 x6 r2 z2 p
' Y# t# a& v7 S8 R# {# v- x/ s
. ]& v: N7 ?# U3 f/ I; i% R5 P& y5 s7 V: D5 p* ?; c- ], i
- D/ w, q0 F3 F+ P
|
zan
|