在matlab中使用向量作为矩阵的索引
我理解一般的想法,但是给定一个三维向量x,下面的意思是什么在matlab中使用向量作为矩阵的索引,matlab,Matlab,我理解一般的想法,但是给定一个三维向量x,下面的意思是什么 x(:,:,[2:end,end]) 我知道有非常类似的问题,但他们要求代码实现所需的行为,而我需要知道该代码指定的行为。该代码只是创建一个新的3D矩阵,以便我们复制切片2、3、4,直到N,其中N是矩阵的最后一个切片,我们还复制了上面的最后一个切片N,并将其放在3D矩阵的末尾,作为输出的最后一个切片。向量[2:end]很重要。Doing:在前两个维度上,意味着我们需要所有的行和列。对于要索引到矩阵中的第三个参数,我们指定了一个向量2:
x(:,:,[2:end,end])
我知道有非常类似的问题,但他们要求代码实现所需的行为,而我需要知道该代码指定的行为。该代码只是创建一个新的3D矩阵,以便我们复制切片2、3、4,直到N,其中N是矩阵的最后一个切片,我们还复制了上面的最后一个切片N,并将其放在3D矩阵的末尾,作为输出的最后一个切片。向量[2:end]很重要。Doing:在前两个维度上,意味着我们需要所有的行和列。对于要索引到矩阵中的第三个参数,我们指定了一个向量2:end,然后是另一个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上