- on the 1st loop iteration it has value 10
- on the 2nd loop iteration it has value 58
- on the 3rd loop iteration it has value 27
For loop only accesses the last element in an array
3 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Peter Perkins
2021 年 8 月 6 日
Stephen23
2021 年 8 月 6 日
@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.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!