问题标签 [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.
c++ - C++ 中的子矩阵
我有一个关于从更大的图像(矩阵)中提取子图像(子矩阵)的编程问题。我有两个点(我要提取的子图像的上限和下限),我想根据这些点从较大的子图像中提取子图像。但我找不到如何用 C/C++ 做瘦。
我知道用matlab很容易做到。假设这两个点是 (x_max,y_max) 和 (x_min,y_min)。要提取子图像,我只需要编写以下代码:
但是在 C 中,我不能像使用 Matlab 那样使用 : 的索引间隔。这里有人遇到过这个问题吗?
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
我的数据集很大,所以需要很长时间。我怎样才能避免循环?
matlab - Matlab:空矩阵的列
想知道是否有人可以帮助我。
为了获取矩阵 A 的第一列 x。我使用 x = A(:,1)。每隔一段时间,矩阵 A 就为空,在这种情况下,我希望我的列也为空。但在 Matlab 中,代码退出时出现错误“索引超出矩阵维度”。有没有办法阻止它退出,而是给我[]?
(我当然可以使用 isempty(A) 写一个“if”语句,但这很烦人,因为我的代码中有几十个地方可能有空矩阵。)
matlab - 对于matlab ques中的循环和矩阵索引
我通过使用for循环定义了一个等于0的矩阵(initial_matrix):
现在,对于每个节点 i,我将考虑所有其他节点,但不考虑节点 i 本身,并将它们中的每一个从 1 中减去并取它们的乘积:
对于节点 1:
对于节点 2:
对于节点 3:
等等..对于剩下的 2 个节点!
谁能告诉我或提示我如何实现这一目标?谢谢!
arrays - Matlab:矩阵索引逻辑
我正在做非常简单的矩阵索引示例。代码如下
在这里我有点困惑。当我使用 A(end, end-2)
它时,直到第一列需要两个差异,当只剩下一列时,没有进一步处理,但是当我使用 A(2:end, end:-2:1)
它 时,它是6 10
如何打印 8 12
的,而只剩下一列,我们必须采取差异两个从右到左,请有人解释这个简单的点
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 值?
我希望这更清楚!
c++ - 将指向字符指针的指针分配给C中的字符矩阵
问题是这样的。我希望能够使用数组表示法创建我的 argv:
然而,主要功能期望 **char 尽管能够在逻辑上相同地对待它们 例如:
但是在我的代码中尝试以下内容将不起作用:
有人可以澄清吗?我还尝试了其他一些排列,例如 pargv = myargv[0][0] 等,但没有成功。
编辑:如果这被证明是不可能的,我已经概述了有人可以帮助我使用 malloc 调用初始化 char **myargv 以便它具有 40 个字符的 10 个字符串。我无法正确使用语法。
arrays - 从向量快速矩阵索引
我想做很多高维数组的矩阵索引,但是索引是分开的。我想出了几个解决方案:
但是最快的 rbind(c(X)) 花费的时间是直接索引的两倍。有没有更快的方法?有没有像 python 的 *args 我可以在 '[' 上运行的东西?
arrays - 向量化高维数组的填充
我正在用观察 test_idxs 填充分布 testa
矢量化解决方案更快,但是这个解决方案已经坏了,而且我提出的所有解决方案都比 for 循环慢。你会怎么做?
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。
当然,这可以很容易地扩展到不仅仅是在一维中选择一个元素。
谢谢!