Copy and paste data in the same CSV file using matlab

5 views (last 30 days)
Hello, I have a CSV file with 720 rows and 2 columns. First column of the file has to be extrapolated to 1420 rows with some function and second column has to be extrapolated to 1420 rows by copying/repeating the same data as in first 720 rows (original data present in second column). I am Successful in extrapolating the first column but getting stuck in the second column. Can anybody help me? Example:
Original file
0.0 0.82
2.1 0.72
4.2 0.68
6.3 0.15
Modified file
0.0 0.82
2.1 0.72
4.2 0.68
6.3 0.15
8.4 0.82
10.5 0.72
12.6 0.68
14.7 0.15
  1 Comment
Stephen23
Stephen23 on 12 Jun 2015
Edited: Stephen23 on 12 Jun 2015
It is much easier for us if you actually upload a sample file for us to use. This is because peoples descriptions of files, the formatting of HTML text and trying to copy it makes this process very error-prone.
You can upload using the paperclip button, and then pressing both the Choose file and Attach file buttons.
It also helps uf if you format any code correctly using the {} Code button that you will find just above the textbox.

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 12 Jun 2015
Edited: Stephen23 on 12 Jun 2015
Method One Hard-coded replication of rows (twice in this example):
>> X = [0.0,0.82; 2.1,0.72; 4.2,0.68; 6.3,0.15];
>> D = mean(diff(X(:,1)));
>> Y(:,2) = [X(:,2);X(:,2)];
>> Y(:,1) = [X(:,1);X(:,1)+X(end,1)+D]
Y =
0 0.8200
2.1000 0.7200
4.2000 0.6800
6.3000 0.1500
8.4000 0.8200
10.5000 0.7200
12.6000 0.6800
14.7000 0.1500
Method Two Number of rows replicated by a constant (thrice in this example):
>> N = 3;
>> Z(:,2) = repmat(X(:,2),N,1);
>> Z(:,1) = linspace(0,D*(N*size(X,1)-1),size(Z,1))
Z =
0 0.8200
2.1000 0.7200
4.2000 0.6800
6.3000 0.1500
8.4000 0.8200
10.5000 0.7200
12.6000 0.6800
14.7000 0.1500
16.8000 0.8200
18.9000 0.7200
21.0000 0.6800
23.1000 0.1500

More Answers (0)

Community Treasure Hunt

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

Start Hunting!