How can I copy a column I already have and add it on to the end of my matrix?

10 views (last 30 days)
I have some data with time followed by various parameters (see example below)
All I want to do is take the 3rd column (4th if you include the time) and create a new column at the end with the same data
2018-01-01T01:00 53.000 0.000 268.450 -1.000 0.100 157.000
2018-01-01T02:00 53.000 0.000 267.750 -1.000 0.200 51.000
2018-01-01T03:00 53.000 0.000 268.450 -1.000 0.100 142.000
2018-01-01T04:00 53.000 0.000 269.550 -1.000 0.200 14.000
I would really appreciate some help with this!
Thanks

Accepted Answer

madhan ravi
madhan ravi on 17 Jan 2019
Edited: madhan ravi on 17 Jan 2019
EDITED
https://www.mathworks.com/help/matlab/ref/addvars.html - as you already have it as a table like shown in your previous question.
Example:
T=readtable('sample.txt'); % your rawdata filename
T.Var1=datetime(T.Var1,'Format','yyyy-MM-dd''T''mm:ss')
New=addvars(T,T{:,4},'After',size(T,2))
Gives:
New =
4×8 table
Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8
________________ ____ ____ ______ ____ ____ ____ ______
2018-01-01T01:00 53 0 268.45 -1 0.1 157 268.45
2018-01-01T02:00 53 0 267.75 -1 0.2 51 267.75
2018-01-01T03:00 53 0 268.45 -1 0.1 142 268.45
2018-01-01T04:00 53 0 269.55 -1 0.2 14 269.55
Download the attached file to experiment.
  10 Comments
William Campbell
William Campbell on 17 Jan 2019
Thanks that has worked for the zeros
All i want to do now is replicate the 4th column and it can go anywhere in the data but it just has to be replicated somewhere
Thanks again!
2018010100.00000 153 0 -4.70000000000000 72.5000000000000 0.500000000000000 231 0
2018010101.00000 153 0 -6.40000000000000 91.5000000000000 0.300000000000000 5 0
2018010102.00000 153 0 -6.20000000000000 94 0.700000000000000 61 0
2018010103.00000 153 0 -5.40000000000000 94 1 72 0
2018010104.00000 153 0 -5.50000000000000 98 0.600000000000000 253 0
2018010105.00000 153 0 -6.30000000000000 100 2.60000000000000 328 0
2018010106.00000 153 0 -8.10000000000000 100 7.40000000000000 327 0
2018010107.00000 157 0 -8.80000000000000 100 5.60000000000000 328 0
madhan ravi
madhan ravi on 17 Jan 2019
Edited: madhan ravi on 17 Jan 2019
OK final answer , if you have anymore questions please post a separate question:
NN=table2cell(T);
S=size(T);
New=cell(S(1),S(end)+1);
N=5; % the number of column which you want to add new values to
New(:,[1:N-1 N+1:end])=NN;
New(:,N)=NN(:,4); % copies the 4th column to where ever you it to be copied to (Nth column)
T=cell2table(New)

Sign in to comment.

More Answers (1)

Torsten
Torsten on 17 Jan 2019
A = [A A(:,4)];

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!