accumarray.doc_第1页
accumarray.doc_第2页
accumarray.doc_第3页
accumarray.doc_第4页
accumarray.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

accumarray/p/1878837742构造与积累的阵列 语法 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)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必须是M 1,其中e M = 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; 4subs = 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创建一个44的矩阵,并减去重复的2-D下标值: val = 101:106;subs=1 2; 1 2; 3 1; 4 1; 4 4; 4 1;B = accumarray(subs,val,(x)sum(diff(x)B = 0 -1 0 0 0 0 0 0 0 0 0 0 2 0 0 0下标的顺序的事项: val = 101:106;subs=1 2; 3 1; 1 2; 4 4; 4 1; 4 1;B1 = accumarray(subs,val,(x)sum(diff(x)B1 = 0 -2 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 例 3创建一个232的数组和重复3-D下标的累计值: val = 101:105;subs = 1 1 1; 2 1 2; 2 3 2; 2 1 2; 2 3 2;A = accumarray(subs, val)A(:,:,1) = 101 0 0 0 0 0A(:,:,2) = 0 0 0 206 0 208 例 4创建一个2-3-2的阵列,和本身的总和值: val = 101:105;subs = 1 1 1; 2 1 2; 2 3 2; 2 1 2; 2 3 2;A = accumarray(subs, int8(val), , (x) sum(x,native)A(:,:,1) = 101 0 0 0 0 0A(:,:,2) = 0 0 0 127 0 127class(A)ans = int8 例 5通过多个在一个单元数组的下标参数。 1. 创建一个12元素的矢量V: 2. V = 101:112;3. 创建三个12元向量,每个维度一个元素的阵列A. 请注意,这些向量的指数如何确定的V元素累积在A: 4. % index 1 index 6 = V(1)+V(6) = A(1,3,1)5. % | |6. rowsubs = 1 3 3 2 3 1 2 2 3 3 1 2;7. colsubs = 3 4 2 1 4 3 4 2 2 4 3 4;8. pagsubs = 1 1 2 2 1 1 2 1 1 1 2 2;9. % |10. % index 4 = 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) = 10413. 调用 accumarray, 通过在一个单元数组下标向量: 14. A = accumarray(rowsubs colsubs pagsubs, V)15. A(:,:,1) =16. 0 0 207 0 % A(1,3,1) is 20717. 0 108 0 018. 0 109 0 31719. A(:,:,2) =20. 0 0 111 021. 104 0 0 219 % A(2,1,2) is 104 0 103 0 0 例 6max函数创建一个数组,该数组的所有元素为空,并填写NaN: val = 101:105;subs = 1 1; 2 1; 2 3; 2 1; 2 3;A = accumarray(subs, val, 2 4, max, NaN)A = 101 NaN NaN NaN 104 NaN 105 NaN 例 7创建一个稀疏矩阵使用prod函数: val = 101:105;subs = 1 1; 2 1; 2 3; 2 1; 2 3;A = accumarray(subs, val, 2 4, prod, 0, true)A = (1,1) 101 (2,1) 10608 (2,3) 10815 例 8数一数每个容器中积累的项目 val = 1;subs = 1 1; 2 1; 2 3; 2 1; 2 3;A = accumarray(subs, val, 2 4)A = 1 0 0 0 2 0 2 0 例 9创建一个逻辑阵列,垃圾桶会积累两个或多个值 val = 101:105;subs = 1 1; 2 1; 2 3; 2 1; 2 3;A = accumarray(subs, val, 2 4, (x) length(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论