【发布时间】:2013-05-31 05:30:00
【问题描述】:
在 MATLAB 中索引矩阵时,我可以只指定第一个或最后一个 n 个维度,并让所有其他维度“自动选择”吗?
例如,我正在编写一个接收图像的函数,并使用imshow 显示它,它可以显示 3-D 彩色图像(例如 1024×768×3)或二维单色阵列(例如 1024x768)。
我的函数不关心图像有多少个颜色通道,imshow 会处理这个问题。我要做的就是传递参数以选择单个区域:
imshow(frame(x1:x2, y1:y2, :))
我应该用什么代替最后一个冒号来表示“包括所有其他维度”?
【问题讨论】:
-
最后一个冒号不起作用吗?通常这是'all'的Matlab语法
-
@Schorsch 是对的:Colon operator documentation
-
否,因为这将使剩余维度上的索引线性化。例如。如果 frame 是 5 维的,这将给出 1 维结果,而不是预期的 3 维结果。我假设@sebf 想要在其现有结构中保留尾随维度?
标签: matlab multidimensional-array matrix-indexing