- 在线时间
- 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在多维数组中的注意事项 , V% ~( f) s0 W9 S* T
numel是用来查询矩阵所含元素总数的函数,例numel(A)
8 u4 _1 _1 A6 l5 b6 Cndims是用来查询矩阵所含维数的函数,例ndims(A) 6 w/ [4 U: U4 O5 P/ L; \
ndims(A(:,:,1))返回结果是2,因为A的第三维只有1维,那么实际上A只是一个二维矩阵;
5 u1 S0 \0 t+ T: N( ^length只能返回一维数组的长度,对于矩阵就必须用size将其化为一维数组之后再用length函数 " j" v6 f+ Z) a" i2 C# |* T7 u
length(A)将得到size(A)的结果中较大的那一个元素;
1 L. v9 K$ |# c9 A/ X6 N) Clength(size(A))才能得到A的维数;
" B; ]. x+ R1 U/ l+ Q2 j5 H( S, i! a( q! u! _6 M5 A' P
22、创建单元数组(记得留意大括号{},等号两边至少要有一个大括号,否则会报错,因为单元数组能够容纳的内容要多,而数组中的元素只能容纳一个字符或数字,另外,单元中可以包含另一个单元) - I4 X" y7 m$ X! b/ N% c
1、 单元索引法:
) t+ v4 h# x) ]9 N! J, V+ SA(1,1)={[1 2 3 ;4 5 6;7 8 9]}; . A F+ n# M7 X. ?3 W
A(1,2)={'example'}; 8 l7 {- I8 I! [& a
A(2,1)={1+2i}; : q4 \4 {4 G7 t, z: R2 i
A(2,2)={6:-1:1};
! n" o# h$ F3 b- N输出结果: 4 f, [, e- [) W3 I9 J. S
2 ^2 g8 y0 Q! o# n+ E% l
A =
( n2 C- ?3 a" N5 D+ g% P
3 L/ Z" g! z1 G[3x3 double] 'example'
2 o$ I; p; N9 d" r' m: C: Y[1.0000 + 2.0000i] [1x6 double]
: M& |) K# U" v' p' [1 S/ U, d# N1 O
2、 内容索引法:
; `7 h- t8 W" R% Z7 G) b; |' H# zA{1,1}=[1 2 3 ;4 5 6;7 8 9]; & o7 q; M$ t; m9 Q, @# A+ j
A{1,2}='example';
9 D( p& b3 S: G' z6 `+ X. Y% J+ HA{2,1}=1+2i;
, ]! m. l- R( n. Q: mA{2,2}=6:-1:1;
, F5 H4 N0 v3 b
% T6 T) ?7 P, Q) g. A5 UA(I,j)={x}和A{I,J}=x都表明将x的值保存于单元数组A的第(I,j)个元素中。其中,前者A(I,j)={x}被称为“按单元索引”,后者A{I,J}=x被称为“按内容索引”。换句话说,花括号{}用于访问单元的值,而圆括号()用于标识单元的位置而不访问它们的值。 " U0 D! ~; v( r6 V3 ^
例:
. b2 k {/ c" J$ PA{1,1}=[1 2 3 ;4 5 6;7 8 9]
! ?5 a( _7 b3 W4 B& v6 SA(1,1)=[ 3x3 double] ' `1 w W( s) U8 g8 k& r- r
花括号在等号左边时:可以对多个单元数组的数据进行输出;
; ` y+ r0 V7 a5 U0 X. ~7 W/ S% Z例:A{1,:}=1:5,将会报错;错误原因是A{1,:}没有指定多少个单元数组将要被赋值 ; R' v$ d' @! I T
花括号在等号右边时:可以对多个单元数组的数据进行输入;
4 F0 a- ?* W) I; P例:A(1, ={1:5},将会将A的第一行单元数组从左至右依次赋值为1、2、3、4、5; ( ~" ^$ q; `1 B! M$ V8 Y! n
% U$ b; w4 f& w- L- b
celldisp(A)用于强制输出单元数组A中的内容,联想记忆:cell+disp--------display展示
" a' p7 J4 v" j: x; Hcell(I,j)用于生成指定大小的空单元数组 5 w- Q( R. E2 i% B+ E' j# K
. b8 H8 Z V: x, ~$ a; u+ X6 b' X& e1 f( w5 f
>> class(B{1,1})%按内容索引 $ P1 J/ U7 h$ e9 j. k
0 a3 r6 f# C6 w% A0 M
ans = 1 n9 ^9 G2 M+ U) ~) w1 z% M
" ?6 b+ W% W/ c. ^$ c3 A0 odouble 9 Q9 p6 }6 T. Z) W, P8 X
1 ?- ~( P: R: ~$ {5 T1 W) J>> class(B(1,1))%按单元索引
# p _7 g2 {( {$ k" {6 ~) P
5 D: P5 p# a- R6 ^0 d8 v) J uans = / T( D9 p" Z+ n0 L: i" H
3 _- E, u/ o# l, z! O* `4 L7 a
cell
) S- b; N3 ]3 n由上面的例子可以看出“由单元索引”和“由内容索引”的结果是完全不同的,“按单元索引”得到的是单元的标识(即单元里是什么类型的值),“按内容索引”得到的是单元的内容(即单元里是什么值)
- e) F2 K4 ]/ Z5 u+ }
2 b3 L+ d1 A( Z4 |9 K, Z- z0 ^& o W. x
: ]5 y9 F/ B: ]* b0 }( z0 V
6 @! C) s* z3 D6 x% e' o
+ c0 @* o6 Y6 ~$ `" O+ w
. X" A A7 I; b8 s- I, k |
zan
|