Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

adding column in text file with value

Asked by Lalit Patil on 27 Nov 2012

Suppose i have a text file that contains 1 column, 68160 rows of random data.

Now, i want

for first 480 rows add 0 in first column,

next 480 rows add 5,

next 480 rows add 10,

next 480 rows add 15,

and continue this with increment of 5, until all columns get finished.. and store all this new data in second column...

I want to write MATLAB code.. So, how to do it...?

0 Comments

Lalit Patil

Products

No products are associated with this question.

2 Answers

Answer by Muruganandham Subramanian on 27 Nov 2012
Edited by Muruganandham Subramanian on 27 Nov 2012
Accepted answer

Check the below code: a=zeros(68160,1);

k=480;

l=5;

j=1;

for i=1:numel(a)

    if i<=k 
        a(i)=a(i)+0;
    else
            if i <= (j+1)*k
            a(i)=a(i)+j*l;
            else
                j=j+1;
                a(i)=a(i)+j*l;
            end
    end

end

1 Comment

Lalit Patil on 27 Nov 2012

Thank you... It get solved..

Muruganandham Subramanian
Answer by Jan Simon on 27 Nov 2012

At first you have to read the file. Therefore you have to know the format of the contents: "random data" could be nearly everything, e.g. floating point numbers like 0.1098435, integers like 134, strings like 'ajdtaoieurgkjahsvbdk', etc. "Adding 0" might imply that you are talking about integer values.

Then a loop seems to be the easiest solution. Just try it and return to the forum in case of problems. It is much easier for the forum users to suggest improvements than to write the complete program from scratch.

1 Comment

Lalit Patil on 27 Nov 2012

I got it solved...!

clear all;

clc;

fid = fopen('data.txt','wt');

for j=1:500

fprintf(fid,'%f\n',j);

end

fclose(fid);

fileID = fopen('data.txt');

C = textscan(fileID, '%f32');

fclose(fileID);

x=cell2mat(C(:,1));

for m = 0:49

for k = (1+(10*m)):(10+(10*m))

y(k) = x(k) + (0+(5*m));

end

end

y = y';

fid = fopen('data.txt','wt');

for j=1:500

fprintf(fid,'%f %f\n',j,y(j));

end

fclose(fid);

If it is possible to short this code then suggest me...

Jan Simon

Contact us