How to merge two matrices of different dimensions in matlab

I like to merge two matrices of different dimensions in MATLAB without using loops as I have done it with loops.

The image below shows what I want to achieve.

I also tried this link, but this is not what I want: Merging two matrices of different dimension in Matlab?

Here is my attempt to do it with loops:

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);

The desired output should be like this:

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

However, I am looking for a better approach without using loops.

Answers


This can be done purely by indexing. First declare your output matrix C as you did before, then replace the first two rows of C with A, then replace the first three columns of C with B:

%// 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;

We get:

>> 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

Need Your Help

How to store the barcode image generated from barcodescanner in phonegap

cordova phonegap-plugins barcode-scanner

I am using barcodescanner.js plugin in my phonegap app and everything is working great for the following code.

How can a mixed data type (int, float, char, etc) be stored in an array?

c arrays

I want to store mixed data types in an array. How could one do that?