RESAMPLING DATA

2 Ansichten (letzte 30 Tage)
Ivan Mohler
Ivan Mohler am 16 Mai 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 Kommentare
Daniel Shub
Daniel Shub am 16 Mai 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 am 16 Mai 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....

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Kye Taylor
Kye Taylor am 16 Mai 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 Kommentare
Ivan Mohler
Ivan Mohler am 17 Mai 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 am 17 Mai 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');

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Ivan Mohler
Ivan Mohler am 16 Mai 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

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by