现在首先,我甚至不确定这被称为矩阵,我是matlab的新手。但是,假设我有一个“矩阵”,看起来像这样:

for n=1:10
...
someImage = mat(:,:,n) %The "matrix"
...
end
.

例如,其中n可以是视频中的帧,例如,前2个生成古代码代码是2D图像的行和列数据(帧)。

如果我只想要数据的第一个属性(行?列?元素?元素?),我将如何只访问?

直观,我认为是这样的:

row1 = mat(:,0,0)
row2 = mat(0,:,0)
row3 = mat(0,0,:)
.

但这似乎并没有工作。

p.s。我知道这些不是真正的行,这一切的术语也会非常感谢

此外,它可能没有任何关系,但我也使用了Matlab GUI,并且“矩阵”存储如下:

handles.mat(:,:,n)
.

我不认为它与我的实际问题有什么关系,但它可能会把它放在这里

-thanks!

有帮助吗?

解决方案

一点我想在开始之前制作:matlab在 1 上开始索引,而不是 0 。这是一个常见的错误,即大多数拥有C / Java / Python编程背景的人进入Matlab。

也,通过执行:

row1 = mat(:,1,1);
.

这访问了第一列的所有行以及视频的第一帧。请注意,这将产生一个生成的世代odetagcode向量,其中M x 1表示视频中帧的行数。

还:

row2 = mat(1,:,1);
.

这访问了第一帧的第一行中的所有列。请注意,这将产生一个生成的世代odetagcode向量,其中M表示视频中帧的列数。

还:

row3 = mat(1,1,:);
.

这可以访问第1行和第1列的整个视频序列中的所有像素。您可以将此视为视频序列左上角的时间片。请注意,这将产生一个生成的世代odetagcode向量,其中1 x N是视频中的帧数。如果您在视频中只访问单个像素位置,则前两个维度是多余的,因此您可以使用N命令来缩小所有单例尺寸,以便简化为1 x 1 x T向量。换句话说,这样做:

row3 = squeeze(mat(1,1,:));
.

fwiw,您确实有正确的术语。行和列一直用于图像/视频处理。至于“矩阵”,在视频处理方面,您可以调用此A <强>时间序列帧序列。它当然是一个3D矩阵,但是这个域中的人表示它是两个中的任一个,因为它真的是彼此顶部堆叠的图像/帧序列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top