accumarray.docx

上传人:b****8 文档编号:10619681 上传时间:2023-02-21 格式:DOCX 页数:8 大小:16.84KB
下载 相关 举报
accumarray.docx_第1页
第1页 / 共8页
accumarray.docx_第2页
第2页 / 共8页
accumarray.docx_第3页
第3页 / 共8页
accumarray.docx_第4页
第4页 / 共8页
accumarray.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

accumarray.docx

《accumarray.docx》由会员分享,可在线阅读,更多相关《accumarray.docx(8页珍藏版)》请在冰豆网上搜索。

accumarray.docx

accumarray

accumarray

构造与积累的阵列

语法

A=accumarray(subs,val)

A=accumarray(subs,val,sz)

A=accumarray(subs,val,sz,fun)

A=accumarray(subs,val,sz,fun,fillval)

A=accumarray(subs,val,sz,fun,fillval,issparse)

A=accumarray({subs1,subs2,...},val,...)

描述

accumarray

从一个数据集的元素构造组,并适用于每个组的函数

A=accumarray(subs,val)

积累元素的载体val和索引subs创建一个数组A。

subs中的一个元素的位置确定的值在累计矢量中设置;subs中的一个元素的值确定的位置的累积的矢量在输出中。

A=accumarray(subs,val,sz)

创建一个数组A,大小sz,其中sz是一个向量的正整数。

如果subs不为空,N>1列,那么您必须有N个元素,其中all(sz>=max(subs,[],1))。

如果subs是一个非空的列向量,然后sz必须是[M1],其中eM>=MAX(subs).。

sz默认指定为[]

A=accumarray(subs,val,sz,fun)

函数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=accumarray(subs,val,sz,fun,fillval,issparse)

创建一个数组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;2;4]

subs=

1

2

4

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下标值:

val=101:

106;

subs=[12;12;31;41;44;41];

B=accumarray(subs,val,[],@(x)sum(diff(x)))

B=

0-100

0000

0000

2000

下标的顺序的事项:

val=101:

106;

subs=[12;31;12;44;41;41];

B1=accumarray(subs,val,[],@(x)sum(diff(x)))

B1=

0-200

0000

0000

-1000

例3

创建一个2×3×2的数组和重复3-D下标的累计值:

val=101:

105;

subs=[111;212;232;212;232];

A=accumarray(subs,val)

A(:

:

1)=

10100

000

A(:

:

2)=

000

2060208

例4

创建一个2-3-2的阵列,和本身的总和值:

val=101:

105;

subs=[111;212;232;212;232];

A=accumarray(subs,int8(val),[],@(x)sum(x,'native'))

A(:

:

1)=

10100

000

A(:

:

2)=

000

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(:

:

1)=

16.002070%A(1,3,1)is207

17.010800

18.01090317

19.A(:

:

2)=

20.001110

21.10400219%A(2,1,2)is104

010300

例6

max函数创建一个数组,该数组的所有元素为空,并填写NaN:

val=101:

105;

subs=[11;21;23;21;23];

A=accumarray(subs,val,[24],@max,NaN)

A=

101NaNNaNNaN

104NaN105NaN

例7

创建一个稀疏矩阵使用prod函数:

val=101:

105;

subs=[11;21;23;21;23];

A=accumarray(subs,val,[24],@prod,0,true)

A=

(1,1)101

(2,1)10608

(2,3)10815

例8

数一数每个容器中积累的项目

val=1;

subs=[11;21;23;21;23];

A=accumarray(subs,val,[24])

A=

1000

2020

例9

创建一个逻辑阵列,垃圾桶会积累两个或多个值

val=101:

105;

subs=[11;21;23;21;23];

A=accumarray(subs,val,[24],@(x)length(x)>1)

A=

0000

1010

例10

组在一个单元数组的值:

val=101:

105;

subs=[11;21;23;21;23];

A=accumarray(subs,val,[24],@(x){x})

A=

[101][][][]

[2x1double][][2x1double][]

A{2}

ans=

104

102

参见

full|sparse|sum

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1