For loop only accesses the last element in an array

3 visualizaciones (últimos 30 días)
Soeun Lee
Soeun Lee el 6 de Ag. de 2021
Comentada: Stephen23 el 6 de Ag. de 2021
Hi all,
I have an array CHANNEL[10 58 27], and I want my for loop to access all three elements. However, right now when I look at the value of di in my workspace, it says 27, so I'm assuming that it is only accessing the last element of the array.
How should I fix the code so that di accesses all three elements in the array?
for di=CHANNEL(1,:)
%load (append('210603_bare-210727-182826','ch',string(di)))
neural = timetable(RawData,'SampleRate',fs);
neural.Properties.VariableNames{1} = 'raw';
neural.Properties.VariableUnits{1} = 'Volts';
HighPass = 300;
LowPass = 5000;
[Z, P, K] = butter(5, [HighPass LowPass]/(fs/2), "bandpass");
sos = zp2sos(Z, P, K);
neural.raw = double(neural.raw);
neural.spikes = sosfilt(sos,RawData);
for idx=1:length(CHANNEL)
figure;
nexttile;
plot(neural.Time,neural.spikes(:,idx))
end
xlim([duration(0,init_mn,init_s,init_ms) duration(0,end_mn,end_s,end_ms)])
ylim([-1e-4 1e-4])
end
  4 comentarios
Stephen23
Stephen23 el 6 de Ag. de 2021
@Soeun Lee: it might have something to do with your looping over the same vector in nested loops:
for di=CHANNEL(1,:)
...
for idx=1:length(CHANNEL)
figure;
nexttile;
plot(neural.Time,neural.spikes(:,idx))
end
...
end
I very much doubt that that nested loop does what you expect or need.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by