2016-05-18 3 views
-1

Так у меня есть сценарий, который вычисляет среднее из данных ускорителя:Как рассчитать среднее значение, минимальное и максимальное в MATLAB

clear all 
close all 
clc 

load 'results.txt' 
Fq=51.2; 
N=length(results); 

t= [1:N]/Fq; 

plot (t,results); 

role=results; 
lowrow=role(1:9244,:); 
fly=role(9245:18700,:); 
pull=role(18802:28171,:); 

subplot(3,1,1) 
plot(lowrow) 
xlabel('Samples'); ylabel('Acceleration'); title('High to Low Rows') 
subplot(3,1,2) 
plot(fly) 
xlabel('Samples'); ylabel('Acceleration'); title('Reverse Fly') 
subplot(3,1,3) 
plot(pull) 
xlabel('Samples'); ylabel('Acceleration'); title('Lawn Mower Pull') 

windowLength = 5; %Length for each window in seconds 
startPos = 1; %Starting Position for 1st win 
endPos = startPos + (windowLength * floor(Fq)); %End Position for 1st win 
totalWindows = floor(length(lowrow)/Fq/windowLength); 

stats = zeros(windowLength,9); 

for i = 1:totalWindows 
epMean = mean(lowrow(startPos:endPos,:)); %calculate window mean 

%X, Y & Z axis values for each stat 
lowrowfeatures(i,1:3) = epMean; 

%Next window position 
startPos = endPos+1; 
endPos = startPos + (windowLength * floor(Fq)); 
end 
windowLength = 5; %Length for each window in seconds 
startPos = 1; %Starting Position for 1st win 
endPos = startPos + (windowLength * floor(Fq)); %End Position for 1st win 
totalWindows = floor(length(fly)/Fq/windowLength); 

stats = zeros(windowLength,9); 

for i = 1:totalWindows 
epMean = mean(fly(startPos:endPos,:)); %calculate window mean 

%X, Y & Z axis values for each stat 
flyfeatures(i,1:3) = epMean; 

%Next window position 
startPos = endPos+1; 
endPos = startPos + (windowLength * floor(Fq)); 
end 
windowLength = 5; %Length for each window in seconds 
startPos = 1; %Starting Position for 1st win 
endPos = startPos + (windowLength * floor(Fq)); %End Position for 1st win 
totalWindows = floor(length(pull)/Fq/windowLength); 

stats = zeros(windowLength,9); 

for i = 1:totalWindows 
epMean = mean(pull(startPos:endPos,:)); %calculate window mean 

%X, Y & Z axis values for each stat 
pullfeatures(i,1:3) = epMean; 

%Next window position 
startPos = endPos+1; 
endPos = startPos + (windowLength * floor(Fq)); 
end 


save('wekafile.txt','lowrowfeatures','flyfeatures','pullfeatures','-ascii') 

Я знаю, среднее, минимальное и максимальное все должны быть на одном скрипте я я просто не знаю, как это сделать. Затем я помещу это в weka как файл arff, чтобы посмотреть дерево j48.

С наилучшими пожеланиями :)

+0

Вы не можете просто дамп кучи коды (даже не отступ!), А затем спросить, как выполнять совершенно тривиальные задачи, даже не упоминая, где в коде и на то, что переменные, которые вы хотите сделать эти расчеты. 'mean',' min' и 'max' - это все встроенные функции MATLAB, и какая у вас проблема? – Dan

+0

Дэн, спасибо за ваш ответ. Проблема, с которой я сталкиваюсь, находится в моем вопросе :) – laurajs

+0

Если это так, то она настолько глубоко погребена в неформатированном и нерелевантном коде, который никто никогда не найдет. Прочитайте [ask] и как создать [MCVE] (http://stackoverflow.com/help/mcve). В вашем случае вам нужно сосредоточиться на M (для минимального, вырезать все несоответствующий код). – Dan

ответ

2

Я не уверен, я понимаю вопрос, но MATLAB имеет встроенную функцию для расчета min и max, так же, как среднее значение. Используйте;

minimum = min(variable); 
maximum = max(variable); 
Смежные вопросы