matlab - 如何在matlab中合并两个不同维度的矩阵

标签 matlab matrix vectorization

我喜欢在 MATLAB 中合并两个不同维度的矩阵而不使用循环,因为我已经用循环完成了。

下图显示了我想要实现的目标。

我也试过这个链接,但这不是我想要的:Merging two matrices of different dimension in Matlab?

这是我用循环来做的尝试:

A=zeros(2,9)-1;
B=ones(6,3);
disp(A);
disp(B);
C=zeros(max(size(A,1),size(B,1)),max(size(A,2),size(B,2)));

for i=1:1:size(A,1)
    C(i,:)=A(i,:);
end
for i=1:1:size(B,2)
    C(:,i)=B(:,i);
end
disp(C);

期望的输出应该是这样的:

A:
    -1    -1    -1    -1    -1    -1    -1    -1    -1
    -1    -1    -1    -1    -1    -1    -1    -1    -1

B:
     1     1     1
     1     1     1
     1     1     1
     1     1     1
     1     1     1
     1     1     1

C:
     1     1     1    -1    -1    -1    -1    -1    -1
     1     1     1    -1    -1    -1    -1    -1    -1
     1     1     1     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0

但是,我正在寻找一种不使用循环的更好方法。

最佳答案

这完全可以通过索引来完成。首先像以前一样声明输出矩阵 C,然后用 A 替换 C 的前两行,然后替换前三列CB:

%// Your code
A=zeros(2,9)-1;
B=ones(6,3);
C=zeros(max(size(A,1),size(B,1)),max(size(A,2),size(B,2)));

%// New code
C(1:size(A,1),:) = A;
C(:,1:size(B,2)) = B;

我们得到:

>> C

C =

     1     1     1    -1    -1    -1    -1    -1    -1
     1     1     1    -1    -1    -1    -1    -1    -1
     1     1     1     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0
     1     1     1     0     0     0     0     0     0

关于matlab - 如何在matlab中合并两个不同维度的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34083685/

相关文章:

matlab - 将一个向量拆包成 k 个变量

c++ - Matlab Engine 命令窗口中的 "??? Undefined function or method"

r - 非常大的字符矩阵循环的性能缩放

c++ - GCC 无法矢量化 64 位乘法。可以在 AVX2 上矢量化 64 位 x 64 位 -> 128 位加宽乘法吗?

numpy - itertools.combinations 的矢量化 Numpy (1d) 版本

matlab - 在MATLAB中序列化多维数组以插入数据库的最简单方法?

perl - 改进我的 Perl 算法以合并 postscript show 命令

c - 反转任意大小的矩阵

json - jq:获取二维数组的维度

algorithm - 如何生成行总和是列总和的排列的矩阵?