Basic Question on Imported Data Size

2 views (last 30 days)
Ann
Ann on 6 May 2014
Commented: Tomas Jurena on 6 May 2014
Hi there! i'm a newbie in Matlab. I have 5x3000 size of imported data (5 row times 3000 data points). How can i change these data size to 1x15000 size (1 row times 15000 (4x3000+3000) data points? I know that I can use this command successfully: data=[data(1,:) data(2,:) data(3,:) data(4,:) data(5,:)]; but is there any short codes that can be used since I also have a big data size (30x3000). If I use the above command, I believe it will not be efficient in terms of command writing.
Annj

Answers (2)

Chandrasekhar
Chandrasekhar on 6 May 2014
Edited: Chandrasekhar on 6 May 2014
reshape(A,1,15000)
where A(3x5000) is the imported data
  2 Comments
Ann
Ann on 6 May 2014
hi Akshata M. Thanks for your reply. I have tried use this command but it is not what I want. For example if I have these data: a =
1 4 7 10
2 5 8 11
3 6 9 12
then i applied b=reshape(a,1,12); the output will be:
b =
Columns 1 through 11
1 2 3 4 5 6 7 8 9 10 11
Column 12
12
However, the desired output that I wish to obtain should be arranged like this:
1 4 7 10 2 5 8 11 3 6 9
Please advice me on other suitable code. Thank you.
Tomas Jurena
Tomas Jurena on 6 May 2014
Just use transpose of the data matrix in reshape, i.e.
reshape(A',1,15000)
so in your example,
b = reshape(a',1,12)
produces the desired result
b =
1 4 7 10 2 5 8 11 3 6 9 12

Sign in to comment.


Rowan
Rowan on 6 May 2014
the easiest way is to use matrix operations to rearrange the data. e.g. if you want to combine two 3 by 3 matrices, A and B, into a 6 by 3 matrix C (6 rows, 3 columns) you would have for example:
A = ones(3);B = ones(3)*2; (just to show the difference between matrices) then: C = [a;b], which would come out as: C = [1 1 1;1 1 1;1 1 1;2 2 2;2 2 2; 2 2 2]
using this method you can rearrange your imported data, like so: (we'll called the data imported D and the result after rearrangement matrix Dtest)
Dtest = [D(1,:) D(2,:) D(3,:) D(4,:) D(5,:)];
basically D(1,:) means all the data in the first row of matrix D so you just create a new matrix with all the rows of imported data in one line.
  1 Comment
Ann
Ann on 6 May 2014
Hi Rowan! Thanks for your respond.
Correct me if i'm wrong, from your statement above, I understand that the Dtest code is the only way to create a new matrix with all the rows of imported data in one line which is also the same code as I mention in my first post.
My problem is that I have too many rows in my data (more than 30 rows), so is there any shortcut code that I can use in order to get all rows of imported data in one line? Thank you.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!