matlab从矩阵中选择矢量并隐藏单个维度

时间:2012-06-23 14:31:00

标签: performance matlab vector matrix slice

如何选择矩阵的某些部分并剪切单个尺寸?

示例:B =零(100,100,3,'double');

当我选择B(2,3,:)时,我得到一个1x1x3矩阵 - 这不是预期的结果,因为对于某些操作(如norm),我需要一个向量作为结果。为了解决这个问题,我使用了squeeze,但这种操作似乎非常耗时,尤其是在使用频繁时。

如何仅选择矢量并“剪切”单个尺寸?

2 个答案:

答案 0 :(得分:3)

在您的情况下,您可以使用冒号运算符,如下所示:

x = B(2,3,:);
x = x(:);

这会将X的所有元素放入1个向量的元素数中。

答案 1 :(得分:0)

您还可以置换尺寸以将非单身人士置于前方。之一:

>> permute(B(2,3,:),[3 1 2])
ans =
      0.97059
      0.69483
       0.2551

>> permute(B(2,3,:),[1 3 2])
ans =
      0.97059      0.69483       0.2551

取决于您是想要行还是列矢量。