问题标签 [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.
matlab - 使用冒号索引未知维度的矩阵
在 MATLAB 中索引矩阵时,我可以只指定第一个或最后n 个维度,并让所有其他维度“自动选择”吗?
例如,我正在编写一个接收图像的函数,并用 显示它imshow
,它可以显示 3-D 彩色图像(例如 1024×768×3
)或 2-D 单色阵列(例如1024x768)。
我的函数不关心图像有多少颜色通道,imshow
会处理这个问题。我要做的就是传递参数来选择一个区域:
我用什么代替最后一个冒号来表示“包括所有其他维度”?
matlab - Matlab:如何从向量 v=[1,2] 中得到 M(1,2)?
说我有:
M(v) 给出[1 3]
但我想得到 is M(1, 2)
= 3。
有没有办法做到这一点?当然,我可以这样做,M(v(1), v(2))
但我需要为 M 一个N维数组和v
一个长度为N的向量工作。
非常感谢
c++ - memcpy 函数在 mex 中调用
我有一个有趣的问题。也就是这样;我正在尝试通过 mex 函数在内部使用 std::memcpy 函数,并像这样在 MATLAB 中调用该 mex 函数;
当我复制整个图像时,效果很好;
但是当我尝试复制图像的某些部分时
它没有给出正确的图像部分,而是给出了无意义的像素值。
那么这里发生了什么?
matlab - 从图像中提取 3x3 矩阵
我需要从图像中提取一个 3x3 矩阵并将其单独存储,它应该像这样一直持续到图像结束。例如,我的图像是以下矩阵:
输出应该是这样的:
等等....
您能否为此建议我的代码或内置函数?
matlab - MATLAB 使用行和列索引向量访问稀疏矩阵中的多个元素
我觉得应该有一个简单的解决方案,但我找不到:
我有A
B
相同维度的稀疏矩阵n*n
。我想创建一个矩阵,C
它复制非零的值。A
B
这是我的方法:
以下是更多细节:
- 我的矩阵非常大,因此解决方案需要高效。
C(B~=0) = B(B~=0);
不幸的是,不会这样做。 - 由于矩阵太大(
Matrix is too large to return linear indices.
),线性索引也不起作用。
真的没有办法使用二维索引吗?
谢谢你的帮助!
matlab - matlab中二维数组的索引
我有一个M1
只包含零的 6X4 矩阵。我还有两个一维数组Y1
,Y2
每个数组的长度为 4。这两个数组包含所需的索引值。现在,我想设置(转换为 1)矩阵的元素,M1
使其
M1(Y1:Y2)
等于 1
例如:Y1=[1 2 2 1]
然后Y2=[3 4 5 3]
,M1
应该是
我可以使用 for 循环来做到这一点。但是有没有优化的方法呢?(我打算使用更大的矩阵)
python - 列表理解和逻辑索引
从 Matlab 慢慢过渡到 Python...
我有这个表格清单
和另一个具有相同数量项目的列表
我正在尝试提取 list1 中不包含任何 nan 值的元素,以及 list2 中的相应元素,即结果应该是:
在 Matlab 中,这很容易通过逻辑索引来完成。
在这里,我感觉某种形式的列表理解可以解决问题,但我被困在:
这显然对list2没有用。
或者,以下逻辑索引尝试不起作用(“索引必须是整数,而不是列表”)
我敢肯定这是微不足道的,但我无法弄清楚,感谢帮助!
matlab - 在 MATLAB 矩阵中查找元素的有效方法
我想知道如何在给定的代码中处理瓶颈。
目前对于N ~ 10^6
,np ~ 1000
和number of calls to this part of code = 1000
,bottleneck 语句总共需要大约 10 秒,与我的其他代码相比,这是一个很大的时间。
@EitanT 要求的仅用于索引语句的示例代码的更多屏幕截图
arrays - 在matlab中消除部分数组
假设我们有一个 100*4 的数组。
我们还有一个 1 和 0 的 100*1 数组。假设有 n 个 1。
我们想从 100*4 数组创建一个*4 数组,其中我们只包含第二个数组为 1 的列。
一种方法是通过双 for 循环。有没有更简单的方法?
所以,我们有
和
我们想要
matlab - 从 3d 矩阵中提取几列
我目前有一个数组 A,其维度为 N xtx t。我想创建一个二维矩阵 N xt,其形式为:
显然,我可以做到这一点的两种方法是完整地写出来(因为 t 很大,所以不切实际)和循环(可能很慢)。有没有办法在没有循环的情况下做到这一点。我想如果我这样做会起作用:
但这只是给了我原始矩阵。