how to add variable to array

Hello guys.
I have breathVAL variable, which is showing the numbers - average of PPG and ECG signal. I need this numbers to average to one number. I know that i have to add this numbers to some array like breathVAL_total and than divide it with the length of this array. Can you help me please? Thanks.
function breathVAL = vaseFCE( PPG, ECG, fs)
%%UPRAVA EKG SIGNALU
[b, a] = fir1(2, 0.032, 'low'); %vytvorenie FIR filtra dolnej priepusti, 0.032 - medzni frekvence
y = filtfilt(b, a, ECG); %pre urceny EKG signal aplikujeme filter dolnej priepusti
[peaks, poloha] = findpeaks(y, 'MinPeakDistance', 320); %funkcia, ktora hlada vzdialenosti medzi peakmi v signale
ECG_sprac = length(poloha); %funkcia, ktory vyhodi pocet peakov v signale
%UPRAVA PPG SIGNALU
[b, a] = fir1(2, 0.032, 'low'); %vytvorenie filtra dolnej priepusti, filter 2 radu
y = filtfilt(b, a, PPG); %pre urceny PPG signal aplikujeme filter dolnej priepusti
[peaks, poloha] = findpeaks(y, 'MinPeakDistance', 320); %funkcia, ktora hlada vzdialenosti medzi peakmi v signale
PPG_sprac = length(poloha); %funkcia, ktory vyhodi pocet peakov v signale
breathVAL = (ECG_sprac + PPG_sprac) / 2; %priemer EKG a PPG signalu = vysledna hodnota breathVAL = odhad dychovej frekvencie
%breathVAL = 15*(mean(PPG) + mean(ECG)) + fs - fs;
end

4 个评论

Can you explain your problem in detail? If you want to get the average of an array you can use mean(array), check the help page to see additional inputs like 'all' or dim when dealing multi-dimensional arrays. For 1-D arrays, this is more or less equivalent to sum(array)/numel(array) with 200 lines of data type and dimension handling.
@Benjamin Großmann i just need to average the breathVAL numbers. Its like 8000 numbers and i need to average them to show just one number - average of all numbers.
If breathVAL is a 8000x1 array, then you can write
breathVAL_AVG = mean(breathVAL);
But looking at your code you wrote
breathVAL = (ECG_sprac + PPG_sprac) / 2;
ECG_sprac as well as PPG_sprac are the output of length() if you use matlabs function length, then the output is scalar and so is breathVAL. The result of mean() on a scalar value is the value itself.
Is there some method or function which can help me average all the scalars(breathVAL) to just one number?

请先登录,再进行评论。

回答(1 个)

Okay, maybe I understood the problem:
If you have an array of PPG and ECG values and a constant fs you could do something like:
fs = 100;
breathVAL_array = arrayfun(@(p,e) vaseFCE(p, e, fs), PPG_array, ECG_array);
breathVAL_mean = mean(breathVAL_array);
Arrayfun is calling your function vaseFCE for every element in PPG_array and ECG_array, calculating the scalar breathVAL and collecting them in breathVAL_array. After that you can call mean to get the average.

2 个评论

@Benjamin Großmann can i ask you where should i put this part of code? you have my code upper
It depends on how you call the function "vaseFCE" at the moment. Most often one can replace the call to a function directly with an arrayfun method.

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by