You need to enable JavaScript to run this app. 如何使用plot命令绘制三维EEG矩阵指定通道、分段的时间-电压波形图
优惠活动
大模型
产品
解决方案
定价
更多

如何使用plot命令绘制三维EEG矩阵指定通道、分段的时间-电压波形图

三维EEG矩阵可落地索引与绘图实现方法

索引逻辑前置说明

你的所有SSVEP EEG矩阵维度严格按照「第1维=采集通道、第2维=采样点、第3维=独立分段」的顺序存储,对应参数完全匹配你给出的数据集规格:

  • 通道可选范围:1~8
  • 采样点可选范围:1~5121
  • 分段可选范围:1~30

所有索引操作的核心规则为:哪个维度需要取连续的波形序列,就给哪个维度留全选标识:,其余维度填固定的目标索引值即可。

通用单波形绘图实现

  1. 目标波形提取的通用索引格式:
    目标波形 = 对应EEG矩阵名称(目标通道索引, 采样点选择范围, 目标分段索引)
    举个实际的取值例子:需要提取ssvep10_7143Hz矩阵中,第3个采集通道、第12个分段的完整连续波形,索引写法为:
    target_wave = ssvep10_7143Hz(3, :, 12);
    代码中第二个位置的:代表取该维度(采样点维度)的全部5121个值,刚好和你存储的1×5121长度的time向量一一对应。
  2. 符合规则的绘图命令写法:
    因为要求X轴映射时间维度、Y轴映射采集电压值,直接用现有time数组作为X轴输入即可,不需要自行计算时间轴:
    plot(time, target_wave, 'LineWidth', 1.2);
    搭配基础标签设置即可完成单波形绘制:
    xlabel('时间(s)');
    ylabel('采集电压(μV)');
    grid on;
    

常见自定义场景实现

  • 指定分段下全通道波形对比
    固定分段索引,遍历所有通道取值绘图,可通过添加垂直偏移避免波形重叠:
    target_seg = 5; % 选定要绘制的分段序号
    hold on;
    for ch = 1:8
        ch_wave = ssvep0Hz(ch, :, target_seg);
        % 每间隔100μV给不同通道加固定垂直偏移
        plot(time, ch_wave + (ch-1)*100, 'DisplayName', "通道"+num2str(ch));
    end
    xlabel('时间(s)');
    ylabel('带垂直偏移的电压值(μV)');
    legend;
    hold off;
    
  • 指定通道下的任意时间段截取
    不需要取全段5121个采样点时,把采样点维度的全选冒号替换为对应的索引范围即可。比如只绘制单通道波形中2s到5s的部分,计算出该时间段对应的采样点范围替换冒号位置即可,无需调整另外两个维度的索引。

易踩坑提醒

  • 不要颠倒维度顺序:很多新手最容易犯的错误是把索引位置写乱,比如错写成ssvep10_7143Hz(:, 3, 12),实际取出的是「所有通道、第3个采样点、第12个分段」的离散值,是长度为8的向量,直接绘图会生成完全不符合预期的乱线。核心判断标准:只有采样点维度的长度是5121,和你存储的time向量长度完全匹配,绘图前先检查取出的向量长度是不是5121,就能避开90%的索引错误。
  • 不需要对三维矩阵做额外的维度转置操作,按照上述顺序索引取出的一维向量长度和time向量完全一致,可直接传入plot命令,不会出现维度不匹配的报错。

内容的提问来源于stack exchange,提问作者Ankush Rahul khanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.09 19:57:04