我有两个矩阵,比如
A=[1 2 3 4; 5 6 7 8; 9 10 11 12] ;
B=[2 3 5 7; 8 9 7 6; 8 7 6 5]
我必须创建一个如下所示的新矩阵:
C=[1 2 2 3 3 4 5 7; 5 6 8 9 7 8 7 6; 9 10 8 7 11 12 6 5]
,即我的新矩阵将使用A的前2列,然后是B的前2列,然后是B的最后2列和B的下一最后2列。
任何人都可以帮我解决这个问题通过" for loop statement"。
感谢您的帮助。
答案 0 :(得分:1)
你不需要为此循环。你想要实现的是交错两个矩阵,你可以手动完成
C = [A(:, [1 2]), B(:, [1 2]), A(:, [3 4]), B(:, [3 4])];
或者你可以把它变成一个更通用的解决方案:
function out = interleave(m1, m2, step)
out = [reshape(m1, [numel(m1)/step step]); reshape(m2, [numel(m2)/step step])];
out = reshape( out, [size(m1,1) numel(out)/size(m1,1)]);
end
然后
C = interleave(A,B,2)
会给你想要的结果。