How to append data inbetween the Array without overwriting its original data ?

2 views (last 30 days)
Hello,
i am a beginner in matlab ,Sorry if i ask something stupid , but i really need help
i have a array named " train_data " of size 67x103 (having 67 instances and 103 features)
i want to add "two" corrosponding rows to each 67 rows of train_data
for example:
row-1 -->0.45 0.34 0.38 .....
row-2 has to be added as:
row-2 --> log(0.45) log(0.34) log(0.38) ......
row-3 has to be added as:
row-3 --> exp(0.45) exp(0.34) exp(0.38) ......
is it possible to do such thing in "train_data" array without overwriting it ??
Please Help , i tried my best to make my question clear , i am hoping for the answer
Thank You for Consideration !!

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 15 Mar 2014
[n,m]=size(A)
B=permute(reshape([A;log(A);exp(A)]',m,n,3),[2 1 3])
out=reshape(B(:,:)',m,[])'
  2 Comments
pooja
pooja on 15 Mar 2014
Edited: pooja on 15 Mar 2014
Thank you Soooo Much...You saved My life Sir
i exactly needed this code
Now i am trying to understand it :P
pooja
pooja on 20 Mar 2014
hello sir sorry agan
i have 14 class x 67 labels in target
problem : 1st column as it is ,add 2nd and 3rd column having same value as 1st column , reulting dimensions shold be 14 x 201
i tried so many combinations on your given code like
[q,p]=size(train_target);
Y=permute(reshape([train_target;train_target;train_target]',q,p,3),[2 1 3]);
train_target=reshape(Y(:,:)',q,[])';
train_target=transpose(train_target);
but all are disaster .... can you help again please ?

Sign in to comment.

More Answers (1)

Mischa Kim
Mischa Kim on 15 Mar 2014
Edited: Mischa Kim on 15 Mar 2014
Pooja, check out INSERTROWS (description in Jiro's blog) in the File Exchange. If you need to add rows at the top or bottom of an array you can simply use:
C = [A; B]
where you add A on top or B on the bottom of the other array.

Community Treasure Hunt

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

Start Hunting!