accumarrayWord文档下载推荐.docx
- 文档编号:7120208
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:8
- 大小:16.84KB
accumarrayWord文档下载推荐.docx
《accumarrayWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《accumarrayWord文档下载推荐.docx(8页珍藏版)》请在冰点文库上搜索。
1列,那么您必须有N个元素,其中all(sz>
=max(subs,[],1))。
如果subs是一个非空的列向量,然后sz必须是[M1],其中eM>
=MAX(subs).。
sz默认指定为[]
函数fun的每个子集的元素的val.accumarray函数默认情况下是sum。
要指定其他函数的fun,使用@符号(例如,@max)。
函数fun必须接受一个列向量,并返回一个数字,逻辑,或字符标,或一个标量单元。
返回值A与作为返回值的fun具有相同的类。
默认指定fun为[]
A=accumarray(subs,val,sz,fun,fillval)
提出的标值fillval的元素A中,未涉及的任意行的SUBS.例如,如果SUBS是空的,那么A是repmat(fillval,sz)。
fillval和fun的返回值必须属于同一类。
fillval的默认值是0。
创建一个数组A,稀疏的标量输入的issparse是逻辑1(即true),或全如果issparse等于逻辑0(false)。
默认情况下是完整的.如果issparse是true,那么fillval必须是零或[],val和输出fun必须是double。
.
A=accumarray({subs1,subs2,...},val,...)
通过多个SUBS矢量在一个单元数组。
您可以使用这个语法的四个的可选输入(sz,fun,fillval,或issparse)。
注意:
如果,下标在subs没有排序fun在其输入数据应该不依赖于该值的顺序。
函数处理的输入如下:
1.了解如何在唯一索引有多少SUBS。
输出数组中的每一个唯一索引定义容器。
SUBS的大小决定了对输出数组的最大索引值。
2.每个索引重复了多少次
这就决定了有多少个元素的vals将要积累在输出数组中的每个容器。
3.创建一个输出数组。
输出数组是尺寸max(subs)的大小SZ。
4.累积vals中的项目使用subs的指数值,每个容器中的条目适用fun。
5.填充值没有引用subs。
默认的填充值是零;
,使用fillval设置为不同的值
注:
SUBS应该包含正整数。
SUBS与一个或多个元素,每个元素的向量的正整数,也可以是一个单元向量。
所有的向量必须具有相同的长度。
在这种情况下,SUBS被视为的向量形成索引matrix.val的列必须是数字,逻辑的,或字符的矢量具有相同的长度作为SUBS中的行数。
VAL也可以是一个标量,其SUBS值重复所有行
实例
例1
创建一个5-1载体和重复的1-D下标的累计值:
val=101:
105;
subs=[1;
2;
4;
4]
subs=
1
2
4
A=accumarray(subs,val)
A=
101%A
(1)=val
(1)=101
206%A
(2)=val
(2)+val(4)=102+104=206
0%A(3)=0
208%A(4)=val(3)+val(5)=103+105=208
例2
创建一个4×
4的矩阵,并减去重复的2-D下标值:
106;
subs=[12;
12;
31;
41;
44;
41];
B=accumarray(subs,val,[],@(x)sum(diff(x)))
B=
0-100
0000
2000
下标的顺序的事项:
B1=accumarray(subs,val,[],@(x)sum(diff(x)))
B1=
0-200
-1000
例3
创建一个2×
3×
2的数组和重复3-D下标的累计值:
subs=[111;
212;
232;
232];
A(:
:
1)=
10100
000
2)=
2060208
例4
创建一个2-3-2的阵列,和本身的总和值:
A=accumarray(subs,int8(val),[],@(x)sum(x,'
native'
))
1270127
class(A)
ans=
int8
例5
通过多个在一个单元数组的下标参数。
1.创建一个12元素的矢量V:
2.V=101:
112;
3.创建三个12元向量,每个维度一个元素的阵列A.请注意,这些向量的指数如何确定的V元素累积在A:
4.%index1index6=>
V
(1)+V(6)=>
A(1,3,1)
5.%||
6.rowsubs=[133231223312];
7.colsubs=[342143422434];
8.pagsubs=[112211211122];
9.%|
10.%index4=>
V(4)=>
A(2,1,2)
11.%
12.%A(1,3,1)=V
(1)+V(6)=101+106=207
%A(2,1,2)=V(4)=104
13.调用accumarray,通过在一个单元数组下标向量:
14.A=accumarray({rowsubscolsubspagsubs},V)
15.A(:
16.002070%A(1,3,1)is207
17.010800
18.01090317
19.A(:
20.001110
21.10400219%A(2,1,2)is104
010300
例6
max函数创建一个数组,该数组的所有元素为空,并填写NaN:
subs=[11;
21;
23;
23];
A=accumarray(subs,val,[24],@max,NaN)
101NaNNaNNaN
104NaN105NaN
例7
创建一个稀疏矩阵使用prod函数:
A=accumarray(subs,val,[24],@prod,0,true)
(1,1)101
(2,1)10608
(2,3)10815
例8
数一数每个容器中积累的项目
val=1;
A=accumarray(subs,val,[24])
1000
2020
例9
创建一个逻辑阵列,垃圾桶会积累两个或多个值
A=accumarray(subs,val,[24],@(x)length(x)>
1)
1010
例10
组在一个单元数组的值:
A=accumarray(subs,val,[24],@(x){x})
A=
[101][][][]
[2x1double][][2x1double][]
A{2}
104
102
参见
full|sparse|sum
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- accumarray
![提示](https://static.bingdoc.com/images/bang_tan.gif)