问题标签 [matrix-indexing]

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 投票
2 回答
1223 浏览

c++ - C++ 中的子矩阵

我有一个关于从更大的图像(矩阵)中提取子图像(子矩阵)的编程问题。我有两个点(我要提取的子图像的上限和下限),我想根据这些点从较大的子图像中提取子图像。但我找不到如何用 C/C++ 做瘦。

我知道用matlab很容易做到。假设这两个点是 (x_max,y_max) 和 (x_min,y_min)。要提取子图像,我只需要编写以下代码:

但是在 C 中,我不能像使用 Matlab 那样使用 : 的索引间隔。这里有人遇到过这个问题吗?

0 投票
3 回答
977 浏览

matlab - 通过索引组计算矩阵的平均值matlab

我有以下数据:

对于 I 中的每个唯一值,A(:,2)我需要在 中获取相应的值,在A(:,1)中查找它们的值C,然后在 中获取相关行B并计算它们的平均值。结果应该是length(unique(A(:,2))x size(B,2)

此示例的预期结果:

  • 值“2”:第 2、4 和 5 行的平均值B 说明:对应于值“2”的索引 1、3 和 10A位于索引 2、4、5 in 处C

相应地:

  • 值“7”:第 1 行和第 3 行的平均值B
  • 值“9”:第 2 行的平均值B

我现在通过应用和迭代每个值,搜索正确的索引unique来计算它。A我的数据集很大,所以需要很长时间。我怎样才能避免循环?

0 投票
2 回答
226 浏览

matlab - Matlab:空矩阵的列

想知道是否有人可以帮助我。

为了获取矩阵 A 的第一列 x。我使用 x = A(:,1)。每隔一段时间,矩阵 A 就为空,在这种情况下,我希望我的列也为空。但在 Matlab 中,代码退出时出现错误“索引超出矩阵维度”。有没有办法阻止它退出,而是给我[]?

(我当然可以使用 isempty(A) 写一个“if”语句,但这很烦人,因为我的代码中有几十个地方可能有空矩阵。)

0 投票
3 回答
100 浏览

matlab - 对于matlab ques中的循环和矩阵索引

我通过使用for循环定义了一个等于0的矩阵(initial_matrix):

现在,对于每个节点 i,我将考虑所有其他节点,但不考虑节点 i 本身,并将它们中的每一个从 1 中减去并取它们的乘积:

对于节点 1:

对于节点 2:

对于节点 3:

等等..对于剩下的 2 个节点!

谁能告诉我或提示我如何实现这一目标?谢谢!

0 投票
2 回答
106 浏览

arrays - Matlab:矩阵索引逻辑

我正在做非常简单的矩阵索引示例。代码如下

在这里我有点困惑。当我使用 A(end, end-2) 它时,直到第一列需要两个差异,当只剩下一列时,没有进一步处理,但是当我使用 A(2:end, end:-2:1)它 时,它是6 10 如何打印 8 12 的,而只剩下一列,我们必须采取差异两个从右到左,请有人解释这个简单的点

0 投票
2 回答
121 浏览

matlab - 用于访问多行的 Matlab 通用矩阵索引

为清楚起见进行编辑:

我有两个矩阵,p.valor 2x1000 和 p.clase 1x1000。p.valor 由从 -6 到 6 的随机数组成。 p.clase 按顺序包含 200 个 1:s、200 个 2:s 和 600 个 3:s。我不想做的是

为 p.clase 中确定的每个类别使用不同的颜色/提示打印 p.valor,如下图所示

我首先写了这个,以便找出 p.valor 中的哪些位置代表 1,2 相应的 3 在 p.clase 中的位置

p.valor 中有 200 个 (1),因此,x1=(1:200)。问题是每个数字一(1)(以及分别为 2 和 3)代表 p.valor 中的两个元素,因为 p.valor 有 2 行。因此,即使 p.clase 和 x1 现在只有一行,我也需要将元素包含在与 f1 中的所有位置相同的列中。

所以我尝试过的不同选择还没有成功。例子:

我的数字有正确的轴,但绘制的值与提供的正确数字不匹配(见问题顶部)。

因此,我的问题是:如何在我的绘图图中包含 p.valor 第二行的 tha 值?

我希望这更清楚!

0 投票
4 回答
467 浏览

c++ - 将指向字符指针的指针分配给C中的字符矩阵

问题是这样的。我希望能够使用数组表示法创建我的 argv:

然而,主要功能期望 **char 尽管能够在逻辑上相同地对待它们 例如:

但是在我的代码中尝试以下内容将不起作用:

有人可以澄清吗?我还尝试了其他一些排列,例如 pargv = myargv[0][0] 等,但没有成功。

编辑:如果这被证明是不可能的,我已经概述了有人可以帮助我使用 malloc 调用初始化 char **myargv 以便它具有 40 个字符的 10 个字符串。我无法正确使用语法。

0 投票
1 回答
94 浏览

arrays - 从向量快速矩阵索引

我想做很多高维数组的矩阵索引,但是索引是分开的。我想出了几个解决方案:

但是最快的 rbind(c(X)) 花费的时间是直接索引的两倍。有没有更快的方法?有没有像 python 的 *args 我可以在 '[' 上运行的东西?

0 投票
0 回答
25 浏览

arrays - 向量化高维数组的填充

我正在用观察 test_idxs 填充分布 testa

矢量化解决方案更快,但是这个解决方案已经坏了,而且我提出的所有解决方案都比 for 循环慢。你会怎么做?

0 投票
1 回答
241 浏览

numpy - 用于任意维数的 Numpy 子数组

在 Numpy 中,假设您有一个 Nd 数组 A,您可以通过 do 对最后一个维度进行切片,也A[...,0]可以通过 do 对第一个维度进行切片A[0]。我想将这个操作推广到所有维度(不仅仅是第一个或最后一个),我希望这个操作适用于任意 N 的 Nd 数组,这样如果 A3 是 3d 数组而 A4 是 4d 数组,func(A3, dim = 1, slice = 0)给我A3[ : , 0 , :]func(A4, dim = 1, slice = 0)给我A4[ : , 0 , : , : ]

我已经寻找了一段时间,最后想出了如何在不做可怕的黑客攻击的情况下做到这一点(比如交换维度,直到感兴趣的维度位于最后一个位置)。所以我在这里发布的代码可以满足我的需要,但是

1) 我一直在寻求建议以改善自己

2)正如我所说,我已经寻找了一段时间,但从来没有找到任何东西,所以它可能对其他人有用。

slice(None,None,1)所以这个小函数只是通过连接我们不想切片slice(fslice, fslice+1, 1)的维度的位置和感兴趣的维度来构建一个切片元组。它比返回一个子数组。它处理负索引。

这与直接索引略有不同:如果 A3 是 3x4x5,则将A3[:,0,:]是 3x5,而fancy_subarray(A3, fdim = 1, fslice = 0)将是 3x1x5。该函数还“自然地”处理超出范围的维度和索引。如果fdim >= farray.ndim函数只返回完整数组,因为 for 循环内的 if 条件永远不会为真,并且fslice >= farray.shape[fdim]返回的子数组在维度 fdim 中的大小为 0。

当然,这可以很容易地扩展到不仅仅是在一维中选择一个元素。

谢谢!