问题标签 [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.

0 投票
0 回答
519 浏览

matlab - 使用滑动内核(Matlab)在 2D 网格上平均 3D 点云的属性

我有一个以 3 列格式 [x,y,z] 组织的 3D 点云,从第 4 列开始每个点的附加属性。请注意,所有点的距离是随机的。我正在尝试实现类似于 blockproc 的移动过滤器,以创建大小为 y,x 的 2D 矩阵,该矩阵沿 z 方向“展平”数据,并对体积中点云的给定属性进行平均。体积应该是沿 x 和 y 的固定大小的内核,我们称它们为 dx 和 dy,在其中将采用任何 z 的值。此外,体积应该能够滑动,例如移动步长(我们称它们为 xStep 和 yStep)不一定等于 dx 和 dy(尽管 dx=dy 和 xStep=yStep)。

到目前为止,我发现的 Matlab 函数有:

blockproc:具有实现滑动内核的能力,但适用于矩阵

accumarray:适用于离散点但没有滑动内核

3D点和移动块 这是我在概念上尝试做的卡通。该函数应该捕获红点并应用一个函数(例如mean、stdev)来计算红细胞的值。然后移动 xStep 并重新应用该功能。

知道如何实现这一目标吗?我已经坚持了一段时间。我写了一个函数来索引每次迭代的点,但是我的数据集相当大(>10^7 点),所以这种方法非常耗时。这个线程提供了一个使用 accumarray 的 MWE,没有滑动内核:

任何输入将不胜感激,谢谢!PS:第一次发帖,如有错误请见谅

0 投票
0 回答
49 浏览

matlab - 如何根据距离分割最短路径

我有连接一组点的最短路径,其中起点 A 是固定的。我有总距离、成对距离以及有序索引。我想分割路径:如果路径的总距离大于某个值,我想切割它并开始一条新路径等等。

我设法使用cumsumand accummary(我正在使用 MATLAB )实现它,但这是一个非常丑陋的解决方案,我想知道还有其他方法吗?

这样我也可以使用 totcost 和 pairwaise 成本(如果提供),而不是例如距离。

0 投票
1 回答
45 浏览

performance - 按组matlab计算观察次数

我有一个看起来像这样的 matlab 数据集:

这是两个单独的数据列。

现在我想计算value2010 年至 2020 年间每年列中非 NaN 观测值的数量,即输出应如下所示:

如果任何计数为零,则应显示为零。

我知道我可以用一个非常简单的循环来做到这一点(下面的例子)。但这对于大型数据集来说是非常低效的。我正在研究 accumarray,但不知道该怎么做。

0 投票
0 回答
73 浏览

python - 分类结果的加权准确度与验证和测试的未加权准确度相同

我正在使用 keras 进行分类模型。我正在使用以下方法编译模型:

我正在使用以下方法进行培训:

self.train_class_weight的是:

{0: 0.834945054945055, 1: 0.8824622531939605, 2: 1.1671274961597542, 3: 1.4782101167315176, 4: 0.8804171494785632}

并使用以下方法提取:

所以我可以看到数据集确实是不平衡的。不过,我在培训中得到以下信息:

并在测试集上评估模型:

准确度 0.8550512194633484,加权准确度 0.8550512194633484。

model.evaluate()这些结果是根据编译的矩阵从模型中提取的。

为什么验证和测试的加权和未加权准确度是相同的?我评价错了吗?有没有更好的方法来衡量加权准确度?否则,我该如何解决这个问题?

0 投票
0 回答
33 浏览

python - 如何将python accum函数与3d数组一起使用

我最近尝试将一些函数从 matlab 转移到 python。matlab中的一个函数叫做“accumarray”,accumarray(3d_array(10*10*10),1)输出也是10 10 10 3d数组。

但是当我尝试在python的“accum”函数中做同样的事情时,我不能在“accum(3d_array(10 10 10),vals)”中直接写“1”作为vals,你知道我该怎么做此功能有效,并且还输出 3D 数组?

非常感谢您的宝贵时间!