MATLAB的BP神经网络碳排放预测:数据归一化、相关性分析与误差评估
简介基于BP神经网络构建的碳排放量预测方案面向本科及以上阶段环境、能源或数据建模方向的读者适用于课程设计、毕业设计以及科研预研。资源内置完整MATLAB代码、历年碳排放数据与相关性分析模块可计算MSE、RMSE、MBE、MAE等模型评价指标并绘制预测对比曲线与拟合效果图方便直接运行复现也便于按需调整网络结构或扩展输入特征。压缩包共15个文件以m脚本、jpg结果图、xlsx数据表和mat网络参数为主整体仅233KB轻量但功能闭环。已有459人学习使用源码附有详细注释遇到运行问题可联系作者协助适合希望快速搭建BP预测基线并继续做相关分析或算法改进的读者。1. 碳排放预测不是玄学BP神经网络与这份代码包能解决什么用BP神经网络做碳排放量预测最怕的不是网络本身而是数据从Excel到MATLAB矩阵这一步就乱了。这份基于MATLAB的代码包把整条链路串好了mainbp1.m和mainbp2.m是两个可直接运行的训练主程序配好了2010-2021碳排放相关数据.xlsx原始数据myPearson.m解决“哪些因素和碳排放强相关”的选特征问题MSE_RMSE_MBE_MAE.m和R_2.m把回归预测最常用的四个误差指标和一个拟合优度指标一次性算齐。适合正在做课设、毕设或入门碳排放预测的本科及研究生也适合想快速复现一套“数据→相关性→训练→评价”完整流程的从业者。它不是论文复现是一份能直接跑通、改一改特征列就能换场景用的工程代码。2. 先把数据理顺xlsx字段编排、mapminmax归一化与样本切分2.1 输入输出怎么组织从Excel到训练矩阵我把这份2010-2021碳排放相关数据.xlsx按课程设计最常见的列顺序拆开第一列是年份中间若干列是特征GDP、人口、城镇化率、能源消费总量、煤炭消费占比等最后一列是碳排放量。具体列名以你打开文件为准但列顺序基本跑不出这个框架。读取时用xlsread最稳兼容老版本MATLAB如果你用的是R2019a以上的新版也可以换成readmatrix。% 读取Excel数据假设第一列年份、最后一列碳排放量 data xlsread(2010-2021碳排放相关数据.xlsx); year data(:, 1); % 年份列仅作参考不进模型 X data(:, 2:end-1); % 特征矩阵每个特征占一列 y data(:, end); % 目标列碳排放量 % 神经网络工具箱约定输入矩阵是“变量数×样本数”每列是一个样本 % 所以这里必须转置否则train会报维度错误 X X; y y;这里最容易被新手忽略的是转置。MATLAB的newff和train都要求输入矩阵的第一维是特征数量、第二维是样本数量和Excel里“一行一个样本”的直觉正好相反。xlsread读出来的矩阵是“样本×特征”直接喂给网络轻则报错重则不报错但结果完全错乱。我在复现时习惯先打印size(X)确认维度再决定要不要转置。这个习惯能省掉至少半小时排错时间。2.2 归一化为什么必须做以及mapminmax的正确姿势BP网络默认的隐含层传递函数是tansig输出值被压制在[-1,1]区间内如果输入数据是GDP这种动辄几十万亿的量级而碳排放量是几十亿吨的量级两者的数值尺度差好几个数量级梯度更新会非常慢甚至直接不收敛。归一化不是可选项是必选项。这里用的是mapminmax它把每行数据映射到指定区间默认是[-1,1]映射参数会保存在结构体ps里后面反归一化还要用到它。% 归一化到[-1, 1]ps_input和ps_output必须保存后面测试集和反归一化都要用 [X_norm, ps_input] mapminmax(X, -1, 1); [y_norm, ps_output] mapminmax(y, -1, 1); % 反归一化的正确写法 y_pred mapminmax(reverse, y_pred_norm, ps_output);注意mapminmax是按行操作的。X在这里已经是“特征×样本”的转置矩阵所以每一行是一个特征每一列是一个样本归一化后每行都被映射到[-1,1]。ps_input里存的是每行的min和range测试集做归一化时必须用ps_input去apply而不是重新mapminmax。一旦测试集单独算了一次归一化参数训练集和测试集就处在两个不同的坐标空间里预测结果基本是废的。这个坑我在第5章还会单独展开。2.3 样本切分十来个年度样本怎么分才不心虚碳排放预测用的是年度数据这份表只有2010到2021年样本量非常有限。切分时不能像一般机器学习那样随机打乱时间序列数据必须按时间顺序切前面的年份做训练后面的年份做预测对比。这样才符合真实使用场景——用历史推未来。trainNum 10; % 用前10年训练后2年测试 X_train X_norm(:, 1:trainNum); y_train y_norm(:, 1:trainNum); X_test X_norm(:, trainNum1:end); y_test y_norm(:, trainNum1:end);如果样本只有12个我的建议是训练集和测试集按8:2到9:1之间取训练集至少保证8个以上样本。再多说一句12个年度样本训练BP网络本身就有过拟合风险后面避坑章会给出具体控制手段。这里先把切分逻辑摆正后面所有评价指标的计算都基于这套切分。3. 相关性分析先行myPearson.m怎么用特征怎么选3.1 皮尔逊相关系数的计算与解读在训练之前先用myPearson.m对特征和碳排放量做一遍相关性分析这个顺序几乎是必须的。皮尔逊相关系数衡量的是两个变量之间的线性相关程度取值在[-1,1]之间。绝对值越接近1线性关系越强正负号代表方向。碳排放量和能源消费总量这类特征通常呈现强正相关而某些产业结构类特征可能呈现负相关。相关性分析能帮你回答两个问题哪些特征对碳排放有解释力哪些特征该剔除。% 计算每个特征与碳排放量的相关系数和p值 numFeatures size(X, 1); % 转置后行数就是特征数 R zeros(numFeatures, 2); for i 1:numFeatures [r, p] corrcoef(X(i, :), y); R(i, 1) r(1, 2); % 相关系数 R(i, 2) p(1, 2); % 显著性p值 end % 打印结果 for i 1:numFeatures fprintf(特征%d: r%.3f, p%.4f\n, i, R(i, 1), R(i, 2)); endcorrcoef返回的是一个2×2矩阵对角线上是1非对角线上的r(1,2)才是我们需要的相关系数。p值用于判断显著性一般以0.05为界p小于0.05说明相关关系在统计上显著不是随机波动造成的。我一般会先看p值p不显著的特征即使r很大也不可靠尤其是样本量只有12个时个别极端值就能把相关系数拉得很高。3.2 相关系数矩阵特征之间的共线性也要看除了看特征和目标的关系还要看特征彼此之间的相关性。两个特征之间的相关系数超过0.9说明它们携带的信息高度重叠同时喂给网络会造成冗余甚至让网络的权重学习变得不稳定。这在碳排放场景里很常见GDP和能源消费总量往往高度相关城镇化率和第二产业占比也可能高度相关。% 一口气算出所有特征之间的相关系数矩阵 % 第i行第j列表示特征i和特征j的相关系数 corrMatrix corrcoef(X); % 找出相关系数超过0.9的特征对提示可能存在共线性 for i 1:numFeatures-1 for j i1:numFeatures if abs(corrMatrix(i, j)) 0.9 fprintf(警告: 特征%d 和 特征%d 的相关系数 %.3f建议只保留其一\n, ... i, j, corrMatrix(i, j)); end end endcorrcoef(X)直接给出整个特征矩阵的相关系数矩阵对角线全是1两边对称。这份代码包里附带的相关性图跑完之后会在图上标出各特征与碳排放量的r值和散点分布。我复现时会把相关性低于0.3的特征直接拿掉——它们对碳排放的线性解释力太弱喂进去只会增加网络规模并不会提升预测精度。3.3 用相关性结论敲定网络输入节点数相关性分析做完输入节点数也就确定了。比如原始表里有6个特征相关性分析后筛掉2个剩下的4个进模型输入层节点数就是4。这个数字直接决定后续newff的第一个参数。很多人在这一步犯懒把所有列一股脑全喂进去结果网络规模变大样本量又小训练出的模型在测试集上一塌糊涂。特征筛选不是锦上添花是BP网络在小样本场景下能不能泛化的关键一步。% 根据相关性分析结果只保留强相关特征 % 假设第1、2、4列与碳排放量相关性最强 selectedIdx [1, 2, 4]; X_selected X(selectedIdx, :); % 重新归一化并切分 [X_sel_norm, ps_input] mapminmax(X_selected, -1, 1); inputNum length(selectedIdx); % 输入节点数 保留的特征数注意相关性筛选必须在切分之前做还是之后做是个很容易忽略的细节。正确做法是先切分再在训练集上算相关系数避免测试集的信息通过特征选择泄漏到模型里。我和很多人的做法是先按时间序切出训练集和测试集然后在训练集上跑相关性分析用训练集算出的特征筛选结论去选择特征。测试集从头到尾只参与最后的评价。4. 训练与评价mainbp1.m参数设置与MSE、RMSE、MBE、MAE的MATLAB实现4.1 两个主程序的关系mainbp1和mainbp2差在哪工程里同时存在mainbp1.m和mainbp2.m还有一个mainbp2.asv自动备份文件。.asv是MATLAB在编辑过程中自动保存的历史版本说明作者曾反复修改过主程序这通常是两种常见情况一是同一份数据分别测试了不同隐含层节点数或不同训练函数二是mainbp1是最基础的训练脚本mainbp2在它的基础上增加了指标计算或绘图输出。我的建议是先用mainbp1.m把整体流程跑通再用mainbp2.m对比误差曲线和预测图重点看两个脚本在newff参数和隐含层节点数上的差异。不要一次同时跑两个脚本先单跑确认结果稳定后再对比。4.2 newff与train网络结构、训练函数与参数设置BP网络的搭建核心是newff函数它的四个关键参数分别是输入范围、隐含层与输出层节点数、各层传递函数、训练函数。这份代码里最常见的配置是隐含层用tansig输出层用purelin训练函数用trainlm。trainlm是Levenberg-Marquardt算法在小样本回归问题上收敛速度极快精度也高是这类课设代码的标准选择。% 网络结构定义 hiddenNum 5; % 隐含层节点数经验公式见下方说明 outputNum 1; % 输出层节点数碳排放量单输出 net newff(minmax(X_train), [hiddenNum, outputNum], ... {tansig, purelin}, trainlm); % 训练参数设置 net.trainParam.epochs 1000; % 最大迭代次数 net.trainParam.goal 1e-5; % 目标误差 net.trainParam.lr 0.01; % 学习率 net.trainParam.showWindow true; % 弹出训练窗口实时看误差曲线 net.trainParam.min_grad 1e-6; % 最小梯度防止震荡 % 开始训练 [net, tr] train(net, X_train, y_train);隐含层节点数没有标准答案常用经验公式是round(sqrt(inputNum outputNum)) a其中a取1到10之间的整数。比如输入4个特征、输出1个变量sqrt(5)约等于2.2加3后取整就是5和代码里的hiddenNum 5对得上。节点数太少网络拟合能力不足节点数太多12个样本量根本撑不起那么多权重直接过拟合。train函数返回的tr结构体里保存了训练过程中的误差变化和最佳验证点后面判断是否早停要用到tr.best_epoch。训练窗口里的mu参数是trainlm特有的自适应调整量它自动变化不用手工干预。4.3 评价指标代码MSE、RMSE、MBE、MAE与R²预测做完不能只看误差曲线必须把量化指标算出来。MSE_RMSE_MBE_MAE.m和R_2.m两个脚本分别对应误差指标和拟合优度。MSE是均方误差RMSE是MSE开平方单位与碳排放量一致直观反映预测偏差的典型幅度。MBE是平均偏差正数说明预测整体偏高负数说明整体偏低用来判断模型是否存在系统性偏差。MAE是平均绝对误差比RMSE对离群值更不敏感。R²是决定系数表示模型解释了目标变量多少比例的方差。function [MSE, RMSE, MBE, MAE] eval_regression(y_true, y_pred) % 回归预测四指标计算 % y_true: 真实值行向量 % y_pred: 预测值行向量需要先反归一化 MSE mean((y_true - y_pred).^2); RMSE sqrt(MSE); MBE mean(y_pred - y_true); % 正数预测偏高负数预测偏低 MAE mean(abs(y_true - y_pred)); end% R_2.m 的核心计算 SS_res sum((y_true - y_pred).^2); % 残差平方和 SS_tot sum((y_true - mean(y_true)).^2); % 总平方和 R2 1 - SS_res / SS_tot;R²的取值越接近1越好但有一点必须提醒BP网络是多元非线性回归R²完全可能算出负值这并不代表代码错了而是说明模型的预测误差比“直接用平均值预测”还大这时候要回头检查数据、网络结构和归一化而不是先怀疑公式。R²和相关性分析中的r不是一个东西单变量线性回归里R²等于r²但多元BP网络里没有这个关系两处代码别混着用。5. 避坑清单归一化顺序、R²公式与newff版本这五道坎5.1 mapminmax的坑测试集归一化方向反了结果全乱现象训练集误差很小RMSE在个位数但测试集预测值和真实值完全对不上曲线形状都对就是数值整体偏移一大截。原因测试集单独跑了一次mapminmax生成了新的ps参数导致测试集被映射到了和训练集不同的坐标空间。解决测试集归一化要用ps_input做apply而不是重新mapminmax。这个坑我踩过一次后直接把代码固定成下面这个模板% 训练集首次归一化生成ps [X_train_norm, ps_input] mapminmax(X_train, -1, 1); % 测试集复用训练集的参数只做apply [X_test_norm] mapminmax(apply, X_test, ps_input);5.2 R²的计算公式错了模型看起来好得离谱现象R²算出来是0.99以上但RMSE明明还有不小误差两个指标互相矛盾。原因网上流传的很多R²代码用的是1 - SS_res / SS_tot这个公式本身没错但有人把SS_tot写成了sum(y_true.^2)也就是漏掉了减去均值这一步。当碳排放量数值整体偏大时不减去均值的SS_tot会非常大R²被虚高放大模型表现看起来好得不真实。解决严格按第4章那段代码写SS_tot必须用sum((y_true - mean(y_true)).^2)。5.3 newff在新版MATLAB里的兼容问题现象在较新版本的MATLAB里运行mainbp1.mnewff这一行报错提示函数已被移除或参数不匹配。原因newff是旧版神经网络工具箱的接口新版推荐使用feedforwardnet或fitnet虽然很多版本仍然保留newff并只给一个警告但也有版本直接编译不过。解决如果你不想改动原工程可以在脚本开头加一行兼容设置如果还是报错就改用feedforwardnet% 如果你习惯newff的写法先确认当前MATLAB版本支持 % 不支持时用feedforwardnet替代结构和训练函数保持一致 hiddenNum 5; net feedforwardnet(hiddenNum, trainlm); net.layers{1}.transferFcn tansig; net.layers{2}.transferFcn purelin; net.trainParam.epochs 1000; net.trainParam.goal 1e-5;我个人更建议新手直接用feedforwardnet它的参数定义更清晰遇到问题也更好搜。但这份工程的maynet.mat保存的是newff训练出的网络对象用feedforwardnet替代后需要重新训练不能直接加载旧网络。5.4 样本量不足酿成过拟合12个点硬训出“完美”结果现象训练集R²接近1RMSE几乎为0但一换到测试集误差放大好几倍预测曲线在真实值附近剧烈震荡。原因12个年度样本对BP网络来说实在太少隐含层节点一旦超过5个网络就有足够多的自由参数去“背下”训练集的每一个点而不是学到碳排放变化的真实规律。解决控制隐含层节点数不超过5个同时开启早停机制。训练完成后检查tr.best_epoch如果最佳验证点出现在最后一轮说明没有早停模型在硬学训练集。% 训练完成后查看最佳迭代点 fprintf(最佳训练轮次: %d\n, tr.best_epoch); % 用最佳迭代点的权重重新仿真 y_pred_norm sim(net, X_test_norm, {1, tr.best_epoch});5.5 数据泄漏相关性分析和归一化混用全量数据现象测试集指标好看得惊人但把模型拿到新一年的真实数据上一试就翻车。原因在切分之前就用全量数据做了归一化和相关性分析测试集的信息已经通过ps_input和特征筛选渗入模型这叫数据泄漏。解决所有涉及数据分布的统计量——归一化的min和range、相关系数、均值、标准差——都只能在训练集上计算测试集只能被apply。从那以后我每次拿到新的预测工程第一步就是检查脚本里有没有在train之前触碰过测试集数据。6. 加载网络做验证maynet.mat的sim用法与BP做时序的边界训练完成后maynet.mat保存的就是训练好的网络对象。下次打开MATLAB不用重跑训练直接加载就能对新数据做预测。关键是sim的输入同样要满足“特征×样本”的矩阵格式并且新数据必须先用保存好的ps_input做归一化。% 加载训练好的网络 load(maynet.mat); % 工作区出现net对象 % 新数据归一化必须复用训练时的ps_input % 假设新数据是1×4的行向量先转置成4×1 X_new [12.5, 8.3, 56.2, 30.5]; % 4个特征 X_new_norm mapminmax(apply, X_new, ps_input); % 仿真预测 y_new_norm sim(net, X_new_norm); % 反归一化得到真实碳排放量 y_new mapminmax(reverse, y_new_norm, ps_output); fprintf(预测碳排放量: %.2f\n, y_new);这份代码和数据的核心价值是把“从Excel到预测值”的路走通但你也要清楚它的边界BP是静态网络不天然具备序列记忆能力遇到逐年时序数据时可以考虑把上一年的碳排放量也作为一个输入特征相当于给网络加了一个“自回归”记忆往往比只用GDP这类外生变量更稳。我现在每次跑完预测都会顺手把sim结果和真实值画在同一张图上视觉判断有没有滞后或系统性偏移这个习惯比任何指标都更能暴露问题。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

AI原生软件开发生命周期实战手册:用TaoToken统一Key打通Claude Code与MCP的agentic coding工作流

AI原生软件开发生命周期实战手册:用TaoToken统一Key打通Claude Code与MCP的agentic coding工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 19:42:53 阅读更多 →
OLLEAGUE.SKILL 实战:用专家知识蒸馏生成可复用 AI Skill 的完整路径

OLLEAGUE.SKILL 实战:用专家知识蒸馏生成可复用 AI Skill 的完整路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 19:42:52 阅读更多 →
AI搜索信任危机:GEO优化如何解决内容权威性难题

AI搜索信任危机:GEO优化如何解决内容权威性难题

一、GEO优化的技术实践的四个常见问题当用户向豆包提问“苏州哪家短视频系统服务商更靠谱”,大模型给出的答案究竟基于什么?这是GEO优化在技术实践中遇到的第一个信任问题:AI凭什么采信一家企业的信息,而非同行竞品。第二个问题随…

2026/10/12 19:42:48 阅读更多 →

最新新闻

同花顺日线文件解析:从二进制乱码到可回测的OHLCV表

同花顺日线文件解析:从二进制乱码到可回测的OHLCV表

简介:这份资源面向金融数据分析初学者与量化爱好者,聚焦同花顺日线二进制文件(.day)的解析问题。压缩包仅4KB,内含2个文件:一个以600000为代码的日线样本文件,以及一份约20行的Python解析脚本&a…

2026/10/13 22:02:46 阅读更多 →
Axure RP 9 高效原型设计:动态面板、事件配置与母版管理实战指南

Axure RP 9 高效原型设计:动态面板、事件配置与母版管理实战指南

简介:《Axure RP 9 使用详解》docx文档面向产品经理、交互设计师及原型初学者,系统讲解从基础页面布局到动态面板、内联框架、函数等进阶交互功能,尤其针对项目投标时原型演示拿不出手的痛点,帮助读者做出专业、可演示的高保真原型…

2026/10/13 22:02:46 阅读更多 →
粒子群无功优化MATLAB实现:基于IEEE30节点的完整代码解析

粒子群无功优化MATLAB实现:基于IEEE30节点的完整代码解析

简介:针对电力系统网损偏高、电压质量不佳等运行优化需求,该资源提供基于粒子群算法的无功优化实现代码,采用IEEE30节点标准测试系统作为算例,适合电力专业研究生、科研人员与算法爱好者参考学习。代码完整覆盖粒子群寻优流程&…

2026/10/13 22:02:46 阅读更多 →
Spring Boot入门:自动配置与配置文件实战解析

Spring Boot入门:自动配置与配置文件实战解析

我最初接触 Spring Boot 时,最直观的感受就是"懒人福音"。这是 Spring 生态里少数能让我这种被 XML 配置折磨过的人,第一次体会到"开箱即用"的框架。如果你之前用传统 Spring 搭过项目,一定记得那些繁琐的配置&#xff1…

2026/10/13 22:02:46 阅读更多 →
FreeCAD中文翻译教程避坑指南:从参数化建模到动态数据驱动

FreeCAD中文翻译教程避坑指南:从参数化建模到动态数据驱动

简介:面向FreeCAD初学者的中文翻译版操作手册,它将官方英文文档wiki整理成更循序渐进的中文读本,帮助零基础用户快速理解参数化建模思路并掌握软件操作。FreeCAD是免费开源的跨平台3D建模软件,本手册涵盖安装、界面导航、3D视图、…

2026/10/13 22:02:46 阅读更多 →
基于SpringBoot的北京民宿推荐系统:内容算法与首都特色实践

基于SpringBoot的北京民宿推荐系统:内容算法与首都特色实践

1. 内容整体设计与思路拆解1.1 为什么是民宿推荐系统,而不是酒店预订系统先说个现象。很多人在做毕业设计时,一提到旅游住宿类系统,第一反应就是"酒店管理系统""民宿预订平台",但这类题目在答辩时很容易被打低…

2026/10/13 22:01:45 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →