【发布时间】:2014-06-04 14:36:56
【问题描述】:
我目前有一个 3 维矩阵,我想通过索引(比如matrix(2,1,:))从中提取一行(到第三维)。我最初预计这将是一个一维矩阵,但我得到的是一个 1 x 1 x n 矩阵。通常这不是问题,但我使用的一些函数不喜欢 3D 矩阵。例如看下面复制的问题:
threeDeeMatrix=rand(3,3,3);
oneDeeAttempt=threeDeeMatrix(1,1,:);
norm(oneDeeAttempt)
返回错误信息:
Error using norm
Input must be 2-D.
这是因为 oneDeeAttempt 是
oneDeeAttempt(:,:,1) =
0.8400
oneDeeAttempt(:,:,2) =
0.0700
oneDeeAttempt(:,:,3) =
0.7663
而不是[0.8400 0.0700 0.7663]
如何去除这些额外的尺寸?我能想出的唯一解决方案是使用循环手动复制值,但这似乎有点过分。
【问题讨论】:
标签: arrays matlab matrix multidimensional-array