在matlab中使用向量作为矩阵的索引
Using a vector as an index to a matrix in matlab
我理解大概的意思,但是给定一个 3 维向量 x,以下是什么意思?
x(:,:,[2:end,end])
我知道有非常相似的问题,但他们要求代码实现所需的行为,而我需要知道此代码指定的行为。
该代码只是创建一个新的 3D 矩阵,以便我们复制切片 2、3、4,直到 N
,其中 N
是矩阵的最后一个切片,我们 还复制 最后一个切片 N
在此之上,并将其放置在 3D 矩阵的末尾作为输出的最终切片。向量 [2:end end]
很重要。在前两个维度上执行 :
意味着我们需要所有行和所有列。对于索引到矩阵中的第三个参数,我们指定了一个 2:end
向量,然后是 additional end
。 end
是此上下文中的一个特殊关键字,它访问该特定维度中的最后一个可能元素。在这种情况下,end
将对应于矩阵的最后一个切片。因此,执行 2:end
意味着您希望访问切片 2、3,直到最后一个切片,然后您希望再次访问最后一个切片。
您始终可以使用一些示例输入在命令提示符中输出矩阵的样子。考虑以下 3D 矩阵:
>> V = reshape(1:24, 4, 2, 3)
V(:,:,1) =
1 5
2 6
3 7
4 8
V(:,:,2) =
9 13
10 14
11 15
12 16
V(:,:,3) =
17 21
18 22
19 23
20 24
正在做:
V(:,:,[2:end end])
给出:
>> V(:,:,[2:end end])
ans(:,:,1) =
9 13
10 14
11 15
12 16
ans(:,:,2) =
17 21
18 22
19 23
20 24
ans(:,:,3) =
17 21
18 22
19 23
20 24
如您所见,我们创建了另一个 3D 矩阵,这样我们 省略 第一个切片,但复制切片 2、3... 直到最后一个切片 N
,然后再创建一个复制切片 N
.
的切片
我理解大概的意思,但是给定一个 3 维向量 x,以下是什么意思?
x(:,:,[2:end,end])
我知道有非常相似的问题,但他们要求代码实现所需的行为,而我需要知道此代码指定的行为。
该代码只是创建一个新的 3D 矩阵,以便我们复制切片 2、3、4,直到 N
,其中 N
是矩阵的最后一个切片,我们 还复制 最后一个切片 N
在此之上,并将其放置在 3D 矩阵的末尾作为输出的最终切片。向量 [2:end end]
很重要。在前两个维度上执行 :
意味着我们需要所有行和所有列。对于索引到矩阵中的第三个参数,我们指定了一个 2:end
向量,然后是 additional end
。 end
是此上下文中的一个特殊关键字,它访问该特定维度中的最后一个可能元素。在这种情况下,end
将对应于矩阵的最后一个切片。因此,执行 2:end
意味着您希望访问切片 2、3,直到最后一个切片,然后您希望再次访问最后一个切片。
您始终可以使用一些示例输入在命令提示符中输出矩阵的样子。考虑以下 3D 矩阵:
>> V = reshape(1:24, 4, 2, 3)
V(:,:,1) =
1 5
2 6
3 7
4 8
V(:,:,2) =
9 13
10 14
11 15
12 16
V(:,:,3) =
17 21
18 22
19 23
20 24
正在做:
V(:,:,[2:end end])
给出:
>> V(:,:,[2:end end])
ans(:,:,1) =
9 13
10 14
11 15
12 16
ans(:,:,2) =
17 21
18 22
19 23
20 24
ans(:,:,3) =
17 21
18 22
19 23
20 24
如您所见,我们创建了另一个 3D 矩阵,这样我们 省略 第一个切片,但复制切片 2、3... 直到最后一个切片 N
,然后再创建一个复制切片 N
.