Combine different Matrix together

I am trying to write a convertor, for converting a text file to another text file. I read three different matrix, and I want to combine them.
In the following, I put a small set of data.
The first matrix is this:
0 1
3 0
1 4
This is the second matrix:
-0
-1
-0
As you see, matrix one and two have the same number of rows. This is the third matrix:
0 1
0 2
2 1
3 0
3 2
2 0
1 4
1 6
I want to produce the following:
-0: 0 1
1: 0 2
2: 2 1
-1: 3 0
4: 3 2
5: 2 0
-0: 1 4
7: 1 6
I was wondering if you kindly help me.
Thanks

3 Comments

Please write me if you have any ideas
Many thanks. I want to print data in this way.

Sign in to comment.

 Accepted Answer

firstcol = cellstr( num2str( (0:size(Third,1)-1).', '%d:') );
[tf, idx] = ismember(Third, First, 'rows');
firstcol(tf) = Second(idx(tf));
Output = [firstcol, num2cell(Third)];

5 Comments

Thanks a lot for your help.
I got the following message by running your code.
Conversion to cell from double is not possible.
Error in ff (line 17)
firstcol(tf) = Second(idx(tf));
Your Second should be a cell array of strings, not numeric values. It is tricky to determine whether a 0 is +0 or -0, and -0 easily lose their identity. -0 does exist in MATLAB as something different than 0 but with the amount of programming you have to put in to take care of it, it is easier to use cell array of strings.
Many thanks.
I changed the second matrix to the following, but I got the same error.
Could you help me to solve it.
-2
-1
-2
firstcol = (0:size(Third,1)-1).';
[tf, idx] = ismember(Third, First, 'rows');
firstcol(tf) = Second(idx(tf));
fprintf( '%3d: %3d %3d\n', [firstcol, Third].');
Thank you very much Walter Roberson . You really helped me here.

Sign in to comment.

More Answers (0)

Asked:

Ali
on 30 May 2016

Commented:

Ali
on 31 May 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!