一个衬管将两个矩阵重新调整为与较小矩阵相同的大小

时间:2013-04-17 01:37:58

标签: matlab resize

假设我有两个矩阵:AB,它们有两种不同的尺寸。例如:

A = [1 2]

B = [3 4 5]

我想要做的是裁剪更大的矩阵并删除任何元素。即。在上述情况下,您将拥有:

A = [1 2] <- Stays the same because it's smaller

B = [3 4] <- Cropped to same size as A.

现在我可以用一堆无聊的ifelse语句轻松地做到这一点,但我希望一个巫师或女巫会帮助我发现魔术matlab语法,它将在一行中完成。

假设它们总是3xN即。载体

2 个答案:

答案 0 :(得分:2)

如果尺寸仅沿第二个维度不同,则可以像这样裁剪数组:

colA = size(A,2);
colB = size(B,2);

A = A(:,1:min(colA,colB))
B = B(:,1:min(colA,colB))

答案 1 :(得分:2)

这也适用于多暗矩阵,基本上与Jonas的答案相同。

d = min([size(A); size(B)]);
A = A(1:d(1),1:d(2));
B = B(1:d(1),1:d(2));

我想知道如何将大小矩阵(如[2 4])转换为索引,即[1:2,1:4] ...