假设我有两个矩阵:A
和B
,它们有两种不同的尺寸。例如:
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.
现在我可以用一堆无聊的if
和else
语句轻松地做到这一点,但我希望一个巫师或女巫会帮助我发现魔术matlab语法,它将在一行中完成。
假设它们总是3xN即。载体
答案 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] ...