如何选择矩阵的某些部分并剪切单个尺寸?
示例:B =零(100,100,3,'double');
当我选择B(2,3,:)时,我得到一个1x1x3
矩阵 - 这不是预期的结果,因为对于某些操作(如norm),我需要一个向量作为结果。为了解决这个问题,我使用了squeeze
,但这种操作似乎非常耗时,尤其是在使用频繁时。
如何仅选择矢量并“剪切”单个尺寸?
答案 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
取决于您是想要行还是列矢量。