为什么自定义函数命令窗输出矩阵,但Spyder变量浏览器中变量为NoneType
问题修复方案
问题根源
你的变量x为NoneType的核心原因是downsample_happysongs函数没有显式声明返回值,Python中所有无return语句的函数执行完成后默认返回None,你此前仅打印了每列的重采样结果,没有将结果聚合存储并返回。
修复后代码
import numpy as np import mne def downsample_happysongs(): sample_freq = 128 # 数据集采样频率 data1 = data[1]['sect3'] # 原始1500×8矩阵 resampled_cols = [] # 初始化空列表存储重采样后的列 for col in data1.T: resample = mne.filter.filter_data(col, sample_freq, 0, 45, verbose=False) resampled_cols.append(resample) # 把列列表转成数组后转置,还原为1500×8的结构 resampled_matrix = np.array(resampled_cols).T return resampled_matrix x = downsample_happysongs()
运行上述代码后x就是重采样完成的1500×8矩阵。
更高效的矩阵处理建议
你不需要手动遍历列完成滤波,mne.filter.filter_data本身支持直接处理二维矩阵,只需要指定处理的轴参数即可,代码可以简化为:
def downsample_happysongs(): sample_freq = 128 data1 = data[1]['sect3'] # axis=0表示按列处理,适配1500行是采样点、8列是通道的结构,无需手动转置 resampled_matrix = mne.filter.filter_data(data1, sample_freq, 0, 45, verbose=False, axis=0) return resampled_matrix x = downsample_happysongs()
这种向量化操作比手动循环遍历列的执行效率更高,也省略了转置还原的操作步骤。
内容的提问来源于stack exchange,提问作者PeruvianNaplord
相关产品推荐
相关产品推荐

