RESAMPLING DATA

5 views (last 30 days)
Ivan Mohler
Ivan Mohler on 16 May 2012
Hi,
I am new here. I have Excell file with one column. In this column there are about 10 000 process data (let say temperatures). I need to export every 15th data to a new excell (every 15th row from first to the last one). Can someone help me?
Thanks in advance, Ivan
  3 Comments
Daniel Shub
Daniel Shub on 16 May 2012
Is there a reason you are not doing this directly in Excel? What have you tried so far in MATLAB?
Ivan Mohler
Ivan Mohler on 16 May 2012
I would like to generate this problem in Matlab, because I have a lots of problem when I have in one column more then 10 000 data... I am doing some modelling in matlab, so I wanna solve this kind of problem in it. If someone has got global answer for this kind of problems, please help me....

Sign in to comment.

Accepted Answer

Kye Taylor
Kye Taylor on 16 May 2012
One way:
numData = xlsread('yourExcelFile.xlsx'); % read in data
numDataOut = numData(1:15:end); % subsample (get every 15th row)
xlswrite('yourNewExcelFile.xlsx', numDataOut); % write out data
  3 Comments
Ivan Mohler
Ivan Mohler on 17 May 2012
Kye, it works....Thanks a lot.
Can you tell me how can I do this but with rows?
Do you into (familiar) filters...The thing is I need some smoothing filter for my data....
If you are into I can explane to you much more deeper...
Kye Taylor
Kye Taylor on 17 May 2012
You probably realized this, but "end" inside indexing parentheses returns the largest valid index at that location.
To subsample rows, replace the second command with
numDataOut = numData(1:15:end,:);
Notice numData(1:15:end,:) referes to rows 1, 16,31,... and all the columns associated with these rows (that's the ,:). (That is, you will write out the entire first, sixteenth, thirtyfirst rows etc.)
You'll probably have more luck asking a specific question about the type of filtering you're into on the main answers page. In the meantime, you might find the following cool:
t = linspace(0,1,1024);
x = sin(2*pi*t);
noisyx = x + .1*randn(size(x));
% smooth it using local averaging
windowWidth = 20;
smoothedx = conv(noisyx, 1/windowWidth*ones(1,windowWidth),'same');
figure,plot(t,noisyx,'r',t,smoothedx,'b')
legend('original signal', 'smoothed signal');

Sign in to comment.

More Answers (1)

Ivan Mohler
Ivan Mohler on 16 May 2012
I would like to generate this problem in Matlab, because I have a lots of problem when I have in one column more then 10 000 data... I am doing some modelling in matlab, so I wanna solve this kind of problem in it. If someone has got global answer for this kind of problems, please help me.... Kye Taylor --> I will try your solution and report you... Tell me is the "end" my last row in my column (real number) or? Thanks...here you soon...

Tags

Products

Community Treasure Hunt

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

Start Hunting!