0

假设我有两个矩阵:A并且B它们是两个不同的大小。例如:

A = [1 2]

B = [3 4 5]

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

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

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

现在我可以用一堆无聊的语句轻松地做到这一点,ifelse我希望一个巫师或女巫能帮助我发现神奇的 matlab 语法,它可以在一行中做到这一点。

假设它们总是 3xN 即。向量。

4

2 回答 2

2

如果大小仅沿第二维不同,则可以像这样裁剪数组:

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

A = A(:,1:min(colA,colB))
B = B(:,1:min(colA,colB))
于 2013-04-17T01:55:00.347 回答
2

这也应该适用于多暗矩阵,与乔纳斯的回答基本相同。

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])...

于 2013-04-17T07:19:39.237 回答