我的问题与在场上合并两个不同间距的矩阵有关 两个矩阵都在(频率空间域(F-X))并且为了说明我们考虑: Matrix One(A x B) 矩阵二(A x C) 其中(A = 1500)是频率样本(它们都共享相同的频率样本数)。 (B = 168)是第一个数据集(现场记录站)的接收器数量,B(1)和B(2)之间的间隔为12米,B(2)和B(3)之间的距离为12米等等 (C = 196)也是第二个数据集(现场记录站)的接收器数量,其间隔不同于B.所以C(1)到C(2)是48,C(2)到C(3) )是48等等。
Matrix One中接收器线的总长度为(168 * 12)= 2016 m。 矩阵二中接收器线的总长度为(196 * 48)= 9408 m。
矩阵(一)的线位于第二行的中间部分。 这意味着他们在两个都存在的地方做了一圈。(来自较短线的每个第四接收器与来自较长线的接收器重叠) 我想合并它们(将它们加在一起),其中最终结果表示在它们重叠的位置添加到矩阵A的courser间距(矩阵2)。
我希望我能以某种方式做到这一点
答案 0 :(得分:0)
如果A
和B
是您的2个矩阵,则merged
将是合并矩阵。我使用了大小为196x100和168x100的矩阵,因为我懒得使用1500;)。
C,D
是整数,范围从1到第一维的大小。
A= randi(100, 168 ,100)+20;
B= randi(10, 196, 100);
C= 1:168; %ranging from 1 to number of receiver in Matrix 1(A)
D= 1:196; %ranging from 1 to number of receiver in Matrix 2(B)
C= C*12+4704; %Distance of each receiver to 0 and shifted to the middle of 2nd matrix
D= D*48; %Distance of each receiver to 0
A= [C', A]; %adding distance as first column to Matrix 1
B= [D', B]; %adding distance as first column to Matrix 2
C= [A;B]; %adding the 2 matrices
C=sortrows(C,1); %sorting the new matrix
merged = C(:,2:end); %deleting first column (distance)
我正在做的是生成距离(C,D
),将它们附加在第1列中,逐行附加两个矩阵并按行距离排序(新列1)。然后在最后我删除了距离,因为你没有要求它。
刚刚意识到你的矩阵不是168x1500而是1500x168,只需转换它,使用(A=A';
)
答案 1 :(得分:0)
如果我正确理解您的问题,您希望将矩阵1的每个第4个值(我将此A
称为)添加到矩阵2中(我将称之为{ {1}})在2中间的某个定义位置。因此,我们需要选择B
的每个第4个值,并在重叠B
的某个点将其添加到A
。< / p>
以下是如何沿第二维选择p
的每个第4个值:
B
由于矩阵coarseB = B(:, 4:4:end);
和A
的大小不同,我们必须使用零扩展B
的大小,以便将其添加到A
。这将有助于了解第二维B
的大小:
coarseB
这将在sizeB = size(B, 2);
coarseB = [zeros(1500, p - 1) coarseB zeros(1500, 168 - (p - 1) - sizeB)];
的末尾和开头连接一个零数组,将其扩展为coarseB
(1500 x 168)的大小。
现在A
可以添加到coarseB
:
A
希望这有帮助!