- 在线时间
- 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在多维数组中的注意事项 ) T& J' Y# f# `4 @# {7 Z
numel是用来查询矩阵所含元素总数的函数,例numel(A) & q2 `$ b: w: [; D
ndims是用来查询矩阵所含维数的函数,例ndims(A)
0 k; r& x/ }4 T4 {1 q( W* T8 Pndims(A(:,:,1))返回结果是2,因为A的第三维只有1维,那么实际上A只是一个二维矩阵; / h( U+ L6 |0 N
length只能返回一维数组的长度,对于矩阵就必须用size将其化为一维数组之后再用length函数 # s( m, ~: l/ u4 Y7 X
length(A)将得到size(A)的结果中较大的那一个元素; + u& q) p- x3 H: H9 |! a
length(size(A))才能得到A的维数;
4 r/ L1 G8 n8 S* I1 \7 b# S* [& c7 g- k3 g7 y+ i
22、创建单元数组(记得留意大括号{},等号两边至少要有一个大括号,否则会报错,因为单元数组能够容纳的内容要多,而数组中的元素只能容纳一个字符或数字,另外,单元中可以包含另一个单元)
f. L2 n" L3 V3 |6 s3 N1、 单元索引法: - I7 Q; _; B: i, n
A(1,1)={[1 2 3 ;4 5 6;7 8 9]};
: R6 t; O) |/ Z7 mA(1,2)={'example'}; " M2 l- c7 u" B3 R" h: ^6 h
A(2,1)={1+2i}; 3 J9 Y! m) ?& c7 C/ y+ \2 R% |
A(2,2)={6:-1:1};
# c. U% `# X$ x输出结果: & \; g8 l7 D; q y5 F
4 H P( |" ~4 C; ?! ]
A = 0 r \! D% E0 p/ `+ T8 @- I8 p( J
9 c% B' ?: _9 V, Q[3x3 double] 'example' % m+ S& | r3 O4 P" ]' O* w
[1.0000 + 2.0000i] [1x6 double]
7 C6 k8 ]# g( x
6 J% D/ B7 D: w2 j# D2、 内容索引法: & F- {5 Y, W; T6 p( T
A{1,1}=[1 2 3 ;4 5 6;7 8 9]; + H, O- j3 O; ]9 ?* J, R6 _# v: }/ I, X
A{1,2}='example'; # v# d" S$ }; u" l
A{2,1}=1+2i;
* c6 }! b( q7 n/ XA{2,2}=6:-1:1;
3 K3 P- }8 l& W6 b( @! t4 o8 }, h/ f3 ?# q/ w3 m4 a' |
A(I,j)={x}和A{I,J}=x都表明将x的值保存于单元数组A的第(I,j)个元素中。其中,前者A(I,j)={x}被称为“按单元索引”,后者A{I,J}=x被称为“按内容索引”。换句话说,花括号{}用于访问单元的值,而圆括号()用于标识单元的位置而不访问它们的值。
" A7 A+ X( j1 e4 n- P% A例: 8 w/ o" E: [# X0 B6 v1 y# g
A{1,1}=[1 2 3 ;4 5 6;7 8 9]
5 V9 z9 g% ~6 F3 IA(1,1)=[ 3x3 double]
: T( x: E+ J9 c' w" ]$ z6 u花括号在等号左边时:可以对多个单元数组的数据进行输出; * G1 K$ q- S; S' c. b
例:A{1,:}=1:5,将会报错;错误原因是A{1,:}没有指定多少个单元数组将要被赋值
" A0 O& b% a' R# f& G. j3 e花括号在等号右边时:可以对多个单元数组的数据进行输入;
, l9 |+ p( Z* ?例:A(1, ={1:5},将会将A的第一行单元数组从左至右依次赋值为1、2、3、4、5;
8 | ~0 R7 Y! U; f
O* Z9 j7 T; m5 f. B, tcelldisp(A)用于强制输出单元数组A中的内容,联想记忆:cell+disp--------display展示
9 z8 v2 W; R# Mcell(I,j)用于生成指定大小的空单元数组
* @/ \, S* J# E8 X& Z- |$ y
; \6 A5 I0 l/ S6 Q6 m0 r( c2 z! w1 `0 A: F' p! c3 L
>> class(B{1,1})%按内容索引
0 r7 ~- f2 Q2 N7 m* ], D. l7 z
: E/ |& Z. i O% jans =
$ W9 r/ k: T( @; I+ c5 |: a, q% t: ]1 b
double
% F" `: t; J# P* b5 {
' }# A7 Q! f: {6 Y$ v>> class(B(1,1))%按单元索引
- }3 k, r' G" U& S
R# R8 X: T3 S P" }ans = 7 {1 g+ E. c6 Y8 U4 [0 L; n0 P
4 o3 U( @ J7 N) g% e& y; h
cell ' K9 o' {( t9 j4 E1 z" @5 x) K
由上面的例子可以看出“由单元索引”和“由内容索引”的结果是完全不同的,“按单元索引”得到的是单元的标识(即单元里是什么类型的值),“按内容索引”得到的是单元的内容(即单元里是什么值)
6 H: }- @& k O, a1 X$ ~4 H7 L
' C% U9 F6 m: C) V2 |0 D" R2 B
* W/ P* C8 F6 T7 v" K! V) s. Y7 i5 ]9 m( H' Y4 M; E$ M
G7 p u% y! n" C! \3 C# { g! ?% f0 J. D) T
7 s6 Z3 }/ I6 P" @3 r: t
|
zan
|