【发布时间】:2015-10-14 08:50:37
【问题描述】:
我在 Matlab 中有一个 3D 矩阵来存储一系列 2D 数组。我必须找到最大值及其行和列索引,这对于保存二维数组的单个变量来说非常简单
A = rand(10,10);
[m,i] = max(A(:));
[I,J] = ind2sub( size(A) , i )
问题是我不能对 3D 矩阵使用这种语法
A = rand(10,10,3);
[m,i] = max( A(:,:,1)(:) );
[I,J] = ind2sub(size( A(:,:,1) ), i )
Error: ()-indexing must appear last in an index expression.
我可以创建一个临时变量来存储 2D 切片,但我想我会看看是否有更好的方法来执行此操作,也许调用重塑?在这种情况下,有什么方法可以使用简单的线性化/扁平化运算符(:)?
【问题讨论】:
标签: matlab matrix vectorization reshape