problem in applying loop

1 visualizzazione (ultimi 30 giorni)
Ali Asghar
Ali Asghar il 18 Set 2019
Commentato: Ali Asghar il 19 Set 2019
I have emg signal (30000x4) and want to apply function on it in loop....
function waveLen = find_waveform_length(signal)
sum=0;
for i=2:length(signal)
sum= sum + abs(signal(i)-signal(i-1));
end
waveLen = sum;
%%%%%% New file %%%%%%%
load ('dath001.mat');
x = dath001; % 30000x4
for i = 1:4
waveLen(i) = find_waveform_length(x(i))
end
but it give output of 0 0 0 0
instead if i run waveLen function separately it give output of
463.6428 200.0671 411.7511 372.9306 ... I want this output by simple apply loop command
Thank you

Risposta accettata

Raj
Raj il 18 Set 2019
What is the 'y' you have used in your main script loop? Its not defined anywhere. Use this line in main script:
waveLen(i) = find_waveform_length(x(:,i))
Since you have not shared your MAT file, I tried with a random 30000x4 matrix and it works.
Few other recommendations:
1) Put an 'end' for your function
2) Don't use variable 'i' or any other inbuilt Matlab variable as index in your 'for' loop.
  4 Commenti
Raj
Raj il 18 Set 2019
Again you have not mentioned what is 'y' here.
Lets see your expression in the loop:
datawindow(i) = w.*buffer(y(:,i),2000,-500)
You are trying to dynamically name the variable datawindow. It is not recommended. See this:
Now coming to your error. The right side of this expression will give you a matrix of some size and you are trying to assign that to a single element of matrix datawindow hence you are getting the size mismatch error.
Wayout: Define datawindow as a cell array like this:
datawindow=cell(4,1);
Then in your loop use this expression:
datawindow(i,1) = {w.*buffer(y(:,i),2000,-500)};
Now your datawindow will have 4 matrices as cell elements. You can extract and use them like this:
datawindow1=cell2mat(datawindow(1,1));
and so on.
See these links for details:
Ali Asghar
Ali Asghar il 19 Set 2019
oky dear

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Discrete-Event Simulation in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by