问题标签 [accumarray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 花式分箱操作 - 如何矢量化相对的分箱内操作?
我决定今晚有点疯狂,并与直方图箱一起对我正在分析的一些财务数据进行操作。
不过,派对似乎已经被大便了,因为我想应用我的“intra-bin”操作的方式并不明显,既不是通过研究也不是通过玩耍,而且证明很麻烦。
愿望:我想在列中使用“binning”索引来执行某种逐行的“intra-bin”操作,其中所述操作将对它自己的 bin 的第一个元素进行相对引用。请考虑下面的单箱示例,其中操作是取差值
一个=
相对运算将采用第 2 列的所有元素和第 2 列的第一个元素之间的差异,使得
bin_differencing_function(A)
=
现在,更方便的是能够为 bin_difference_function(A) 提供一个具有任意数量 bin 的双列矩阵,这样如果
一个=
better_bin_differencing_function(A)
=
最方便的方法是能够为 better_bin_difference_function(A) 提供具有任意数量 bin 的双列矩阵,其中 bin 长度可能不是恒定的,如果
一个=
best_bin_differencing_function(A)
=
最大的愿望是创建一段代码,利用矢量化(如果可能的话)对长度在 1 到 200 之间变化的许多 bin 进行操作。我认为在 accumarray 上玩可能会起到这样的作用
其中 fun(x) 是一个带有 for 循环的函数。
我在 Windows 7 上运行 MATLAB 7.10.0.499 (R2010a)。抱歉,这些示例查询了这么久。
arrays - 音频文件的联合熵
因此,在尝试了一个基于 cicle 的重型函数来计算两个信息源的联合熵之后,我发现了这个有用的 MATLAB 函数accumarray
,并尝试了以下代码:
, wherefonte1
和fonte2
是信息源,1xN
数组。这适用于两个源都只有正整数值的示例,但后来我尝试将它与音频文件(即值范围从 -1 到 1 的数组)一起使用,它一直给我一个错误。我尝试将 1 添加到每个数组(范围从 0 到 2),将它们乘以 100 并对数字进行四舍五入,以获得非负整数,但它仍然不起作用。
对此代码的任何想法/替代方案将不胜感激。
matlab - 在分组数据中按窗口大小对数据求和
我对 matlab 很陌生,我正在尝试找到一种不使用 for 循环来完成以下任务的方法:
我有一个如下所示的数据集:
第一列是一个组(将来是一个月年的组合)
现在我想计算具有给定窗口大小的第二列的总和,但前提是组索引相同 - 如果不是,则应计算该组中的最大总和。
使用 window size=2 我想创建以下结果:
窗口大小为 3 时,结果将如下所示:
等等。
我曾考虑通过创建足够的子索引来使用 accumarray - 但我对窗口大小有疑问,并且总和是重叠的。
有没有人知道如何在不使用循环的情况下实现它?
在此先感谢和最好的问候斯蒂芬
matlab - 计算列中字符串的出现次数 - Matlab
我有一列包含以下数据:
大小:100x7
我想在饼图上显示数据。要做到这一点,我需要知道这个专栏中有多少 USA,等等。
我读到了函数 unique,accumarray 但我没有成功
我想得到一些建议如何做到这一点。
谢谢。
matlab - 设置每小时 x 轴以在 Matlab 中绘制 Accumarray
在 matlab 中,我使用 accumarray() 创建了一个包含 3 列整数的新向量。第 1 列:日期(只是日期);第2栏:小时;第 3 列:样本值。
现在我绘制图表的代码涉及以下内容;
我很难找到一种方法,其中 x 轴每小时(或 2 小时)标记一次。谢谢
matlab - 循环的累积和matlab
我正在尝试对特定风暴和多个风暴中所有观测的飓风观测之间的连续小时数(变量“小时”)进行累积求和,以确定风暴的持续时间。这就是我所拥有的:
我的目标是总结每个风暴 id 的小时数,所以我认为使用 accumarray 会起作用,但它没有。这是我尝试过的。
然后我也尝试了cumsum,但我无法弄清楚当风暴ID相同时如何只使用cumsum。
如果有人有任何想法,我将不胜感激!谢谢。
matlab - MATLAB 中的稳定 accumarray
MATLAB 的内置函数accumarray
接受一个函数fun
作为第四个参数。
这适用于在中具有相同下标的fun
元素的每个子集。然而,文档指出:val
subs
如果中的下标
subs
没有根据它们的线性索引排序,fun
则不应依赖于其输入数据中值的顺序。
我们如何实现一个没有这个限制的稳定版本,但保证子集采用与给出的相同的顺序?accumarray
val
例子:
11:20
如果accumarray
是稳定的,则预期的输出将是。实际上输出是:
我们的实现应该产生:
matlab - Matlab中的快速滚动相关
我正在尝试导出一个用于计算两个向量的移动/滚动相关性的函数,并且速度是一个高优先级,因为我需要在数组函数中应用这个函数。我所拥有的(太慢了)是这样的:
我认为for
如果我知道如何生成滚动窗口索引然后应用accumarray
. 有什么建议么?
matlab - 使用 accumarray 按索引对行求和
我可以在不使用 for 循环的情况下对多个索引的行或列求和吗?
我有一个 n × n 矩阵 ,M
它表示词汇术语的共现,其中 n 是词汇的长度。
我还有一个由 n 个逻辑掩码 ,L
表示成对的词汇对,其中词汇对的形式为(单数,复数)。例如,在伪代码中,L('octopus', 'octopuses') = True
我想将M
包含复数的任何对的条目添加到包含相应单数的对的条目中。例如,在伪代码中, M_sum('octopus', 'swim') = M('octopus', 'swim') + M('octopuses', 'swim')
;
为了说明我到目前为止所做的尝试,让我们使用以下玩具数据。
要查找单数到复数的对应关系,我可以使用 find
如果每个单数只有一个复数,则将行或列相加很简单
但是,如果有多个复数对应一个单数,则不能使用这种方法。
例如,
正确答案应该是
但是使用上述方法返回
基本上,M_sum(singular, :) = M_sum(singular, :) + M(plural, :);
只使用最后一个plural
索引。
我认为我需要在accumarray
这里使用,但是我在制定正确的语句时遇到了一些麻烦,因为我有两个索引,plural
并且singular
. 如果accumarray
不是正确的方法,也欢迎其他解决方案。
matlab - Matlab - Accumarray 混乱?
我只是不明白 accumarray 究竟是如何工作的。我检查了官方的matlab文档,但我仍然无法完全理解。
如果是这样的,在哪里:
我知道它是 A(1)= 101、A(2)= 0、A(3)= 102+104 和 A(4)= 103+105
但如果是这样的:
我不明白这个方法是如何工作的......我有点得到A(1)= 101 + 104,然后是A(2)= 102 + 105。
但为什么会显示在第二列?另外,为什么 [3 2] 行不包括在计算中?
我知道这是一个非常简单的问题,但这是我第一次使用 Matlab .. 对此的任何帮助将不胜感激,谢谢!