Why do I obtain identical graphs while for loop is accessing different sets of data stored in different column?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi all,
I have an array CHANNEL [10 58 27] and neural.spikes contain three columns each with different sets of data. Using the second for loop, I'm trying to plot the three sets of data separately, which should look different. But I'm obtaining three identical graphs while idx iterates from 1 to 3, which should allow me to plot the three columns of data stored in neural.spikes. Can anyone please tell me what is wrong with my code?
Thank you in advance for your help!
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
댓글 수: 0
답변 (1개)
M.B
2021년 8월 6일
Check the following:
- length(CHANNEL) is not equal to 1
- data in neural.spikes(:,1) are different from neural.spikes(:,2)?
Set a break point before "for idx=1:length(CHANNEL)" and run this code:
figure(123);
plot(neural.Time,neural.spikes(:,1)); hold on;
plot(neural.Time,neural.spikes(:,2));
plot(neural.Time,neural.spikes(:,3));
댓글 수: 1
Peter Perkins
2021년 8월 6일
Yes, my guess is that neural.spikes = sosfilt(sos,RawData) isn't doing what you think it is. Set a break point at that line and check in the inputs and outputs.
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Performance에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!