嵌套循环或索引3 d矩阵-脑电图/ LFP数据

22日视图(30天)
恩佐
恩佐 2023年4月24日
评论道: Varun 2023年5月19日在11
大家好,
我努力寻找解决以下问题:
我有一个三维矩阵,我们叫它TD_32 (5000, 86)。这是一个时间序列,第一个维度代表实际的数据,第二个渠道和第三试验(这个数据集是一个脑电图数据结构)。
阈值和计算发现了另一个矩阵(我们称之为pre_rms_single_chan_4x)和它在所有的试验和渠道各不相同。这意味着门槛最终将一个32位x86矩阵。在以下代码行,矩阵TD_32已经倒阈值实际上是一个负峰。
[val_rms, idx_rms] = findpeaks (-TD_32_denoise_post_single_chan_single_tr,
MinPeakHeight = pre_rms_single_chan_4x);
现在,我需要找到所有3 d矩阵中的值TD_32超过阈值,并将它们存储到一个新的3 d矩阵和布尔变量。
idx_matrix (idx_rms) = true;
不幸的是,有一个错误在我的代码中,防止它在所有的维度。 正确的代码只计算第一个维度中的值但停止工作后第一次审判第一通道。
我从matlab的错误消息:
警告:无效MinPeakHeight。没有数据点大于MinPeakHeight。
在findpeaks > > removePeaksBelowMinPeakHeight(第504行)
在findpeaks(第146行)
试图手动计算阈值,找到超过值几个烛煤和试验和它的工作原理。这意味着代码本身的问题(s)。
ch = 32
tr = 2:86
ch, TD_32_denoise_post_single_chan = TD_32_denoise_post (::);
TD_32_denoise_post_single_chan =挤压(TD_32_denoise_post_single_chan);
pre_rms_single_chan_4x = pre_rms_all_chan_4x (ch、tr);
pre_rms_single_chan_4x =挤压(pre_rms_single_chan_4x);
TD_32_denoise_post_single_chan_single_tr = TD_32_denoise_post (:, ch, tr);
[val_rms, idx_rms] = findpeaks (-TD_32_denoise_post_single_chan_single_tr,
MinPeakHeight = pre_rms_single_chan_4x);
idx_matrix (idx_rms) = true;
结束
结束
2的评论
Varun
Varun 2023年5月19日在11
你好!你能分享所有必要的变量吗 .mat 文件吗?这将有助于调查问题更好!

登录置评。

答案(0)

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!