矩阵乘法本质:线性变换复合的几何直觉与实操指南
1. 为什么“矩阵乘法”总让人一头雾水线性代数这门课很多人学完一学期矩阵乘法算得飞快但一问“矩阵乘法到底在干什么”脑子里就只剩下一句“行乘列求和”。这不是你笨而是大多数教材把顺序搞反了——先塞给你一堆计算规则再告诉你它其实对应着空间变换的复合。我当初也是这么过来的直到后来做图形学相关的东西才真正把“矩阵乘法”和“线性变换的复合”这两件事焊死在脑子里。这篇笔记想做的事情很纯粹把矩阵乘法从“算术操作”还原成“变换的接力”。如果你正在学线性代数、做计算机图形学、搞机器学习里的特征变换或者单纯想把当年没学明白的东西补回来那这篇内容应该能帮你省下不少翻书的时间。我会从几何直觉讲起把矩阵乘法的每一个细节拆开告诉你为什么是那样算的、顺序为什么不能反、单位矩阵和逆矩阵到底在“复合”里扮演什么角色最后再落到实际计算和常见坑上。核心关键词就三个矩阵乘法、线性变换、复合。这三个词其实说的是同一件事的三个面——矩阵是变换的记账本乘法是变换的串联复合是几何上的先后作用。把这三者打通线性代数里一大半的困惑会自己消失。2. 先把“线性变换”这件事说透2.1 变换就是“把空间里的点挪个位置”你可以把线性变换想象成一只无形的手它伸进整个平面或者空间把每一个点按照某种规则挪到新位置。但“线性”这两个字加了限制第一原点不能动变换前后原点还在原点第二直线变换后还得是直线不能弯第三网格线变换后必须保持等距平行。满足这三条才叫线性变换。为什么强调这三条因为一旦满足整个变换就可以用“基向量去了哪里”来完全描述。二维空间里我们盯住两个基向量一个是沿x轴的单位向量记作i-hat坐标是(1, 0)另一个是沿y轴的单位向量记作j-hat坐标是(0, 1)。只要知道变换后这两个向量落到哪里空间里任何一个向量变换后的位置就唯一确定了。举个例子假设某个变换把i-hat拉到(3, 1)把j-hat拉到(-1, 2)。那么任意向量(x, y)变换后就是x乘以(3, 1)加上y乘以(-1, 2)也就是(3x - y, x 2y)。这个结果完全由两个基向量的落点决定。而这两个落点的坐标按列排起来就构成了矩阵[ 3 -1 ] [ 1 2 ]第一列是i-hat的新位置第二列是j-hat的新位置。这就是矩阵的几何含义——矩阵的列就是变换后的基向量。这个认知一旦建立后面所有东西都会顺起来。2.2 矩阵是变换的“记账本”不是一堆数字很多人把矩阵看成一张数字表格这没错但不够。更准确地说矩阵是一份“基向量去向报告”。你写下一个2×2矩阵就等于宣布在这个变换下i-hat去到了第一列那个坐标j-hat去到了第二列那个坐标。这个视角的好处是当你看到矩阵[ 0 -1 ] [ 1 0 ]你不会只看到四个数字你会立刻意识到i-hat从(1,0)转到了(0,1)j-hat从(0,1)转到了(-1,0)。这是逆时针旋转90度。再比如[ 2 0 ] [ 0 2 ]i-hat和j-hat都拉长到原来的2倍整个平面均匀放大两倍。矩阵的每一列都在讲故事讲的是基向量搬家去了哪里。注意矩阵的列对应基向量这个约定是“列向量在右乘”体系下的标准。如果你习惯行向量左乘矩阵的行才对应基向量。两种体系不能混用混了就会在复合顺序上翻车。我建议统一用列向量体系因为绝大多数图形学和机器学习库都是这么定的。2.3 从“一个变换”到“两个变换的接力”单个变换理解了复合就是自然延伸先做一个变换再做另一个变换最终效果等于一个什么样的变换这就是矩阵乘法要回答的问题。假设先做变换A再做变换B。注意这里的“先A后B”在书写上通常写成B·A从右往左读因为列向量体系下向量先被A作用再被B作用写成B(A·v) (B·A)·v。这个顺序问题是初学者最大的坑之一后面会专门拆。复合的核心问题是如果A的矩阵是M_AB的矩阵是M_B那么复合变换对应的矩阵M_C是什么答案就是M_C M_B · M_A。而矩阵乘法的计算规则正是为了保证这个等式成立而设计出来的。换句话说矩阵乘法不是先有规则再找用途而是先有复合需求再推导出规则。理解这一点你就不会再觉得矩阵乘法是“天上掉下来的奇怪算法”。3. 矩阵乘法到底怎么算为什么这么算3.1 从几何复合反推乘法规则我们不用教材里“行乘列”的说法直接从几何出发推一遍。设变换A把i-hat送到(a, c)把j-hat送到(b, d)所以M_A [ a b ] [ c d ]设变换B把i-hat送到(e, g)把j-hat送到(f, h)所以M_B [ e f ] [ g h ]现在问复合变换C 先A后B它的矩阵是什么我们只需要追踪两个基向量在复合后的落点。先看i-hat。A作用后i-hat变成(a, c)。然后B作用在这个向量上。B作用在任意向量(x, y)上的结果是x乘以B的第一列加上y乘以B的第二列即x(e, g) y(f, h)。把(x, y) (a, c)代入得到a(e, g) c(f, h) (ae cf, ag ch)。所以复合后i-hat落在(ae cf, ag ch)这就是M_C的第一列。再看j-hat。A作用后变成(b, d)。B作用后是b(e, g) d(f, h) (be df, bg dh)。这是M_C的第二列。于是M_C [ aecf bedf ] [ agch bgdh ]这就是矩阵乘法的完整推导。你对照教材里的“行乘列”规则会发现完全一致M_C第一行第一列是M_B第一行乘M_A第一列第一行第二列是M_B第一行乘M_A第二列以此类推。但通过几何推导你不仅知道怎么算还知道为什么这么算——每一列都是基向量经过两次接力后的落点。3.2 一个具体例子把过程走一遍光看公式容易飘我们拿两个具体矩阵算一遍。设M_A [ 1 2 ] M_B [ 3 0 ] [ 3 4 ] [ 1 2 ]先A后B复合矩阵M_C M_B · M_A。第一列M_A第一列是(1, 3)。B作用后是1·(3, 1) 3·(0, 2) (3, 1) (0, 6) (3, 7)。第二列M_A第二列是(2, 4)。B作用后是2·(3, 1) 4·(0, 2) (6, 2) (0, 8) (6, 10)。所以M_C [ 3 6 ] [ 7 10 ]用“行乘列”验证第一行第一列 3×1 0×3 3第一行第二列 3×2 0×4 6第二行第一列 1×1 2×3 7第二行第二列 1×2 2×4 10。完全吻合。这个例子里M_A把i-hat拉到(1,3)j-hat拉到(2,4)M_B再把它们分别拉到(3,7)和(6,10)。复合矩阵的列就是这两个最终落点。整个过程没有任何神秘运算就是“追踪基向量”四个字。3.3 顺序为什么不能反一个反例就够了矩阵乘法不满足交换律这是常识但很多人只是背下来没真正理解。我们用几何复合来解释先A后B和先B后A通常是两个完全不同的变换。拿上面的M_A和M_B算一下先B后A即M_A · M_B。第一列M_B第一列是(3, 1)。A作用后是3·(1, 3) 1·(2, 4) (3, 9) (2, 4) (5, 13)。第二列M_B第二列是(0, 2)。A作用后是0·(1, 3) 2·(2, 4) (0, 0) (4, 8) (4, 8)。所以M_A · M_B [ 5 4 ] [ 13 8 ]和M_B · M_A [[3, 6], [7, 10]]完全不同。几何上也好理解先拉伸再旋转和先旋转再拉伸结果当然不一样。就像你先穿袜子再穿鞋和先穿鞋再穿袜子虽然都是两个动作但结果天差地别。实操心得每次写矩阵乘法先问自己“谁先作用”。在列向量体系下写在右边的先作用。如果你在推导图形学里的模型-视图-投影矩阵顺序写反了物体会飞到屏幕外面去而且很难debug。我的习惯是先在纸上画两个基向量的落点确认顺序对了再写代码。4. 复合视角下的几个关键角色4.1 单位矩阵什么都不做的变换单位矩阵I长这样[ 1 0 ] [ 0 1 ]它的列告诉你i-hat还在(1,0)j-hat还在(0,1)。什么都没动。所以任何变换和单位矩阵复合结果还是那个变换本身。用公式说就是I·M M·I M。这很符合直觉——“先做一个变换再什么都不做”和“什么都不做再做一个变换”都等于只做那个变换。单位矩阵在复合里的作用就像数字1在乘法里的作用。它看起来简单但在求逆矩阵、解线性方程组、判断变换是否可逆时它是基准参照物。一个变换可逆意思就是存在另一个变换能把它“抵消”回单位变换。4.2 逆矩阵把变换倒回去如果变换A把空间扭曲了逆矩阵A⁻¹就是那个能把扭曲复原的变换。复合起来就是A⁻¹·A I先A后A⁻¹等于什么都没做。从几何上看逆矩阵的列就是“原来的基向量应该从哪里来”。比如A把i-hat拉到(2,0)把j-hat拉到(0,3)那A⁻¹就要把(2,0)拉回(1,0)把(0,3)拉回(0,1)。算出来A⁻¹就是[ 1/2 0 ] [ 0 1/3 ]复合A⁻¹·A第一列A第一列(2,0)被A⁻¹作用得到2·(1/2, 0) 0·(0, 1/3) (1, 0)。第二列类似得到(0,1)。确实是单位矩阵。这里有个重要结论不是所有变换都有逆。如果变换把整个平面压扁成一条线比如矩阵[ 1 2 ] [ 2 4 ]两列成比例i-hat和j-hat被压到同一条直线上。这时候你没法从压扁后的结果恢复出原来的信息因为多个不同的点被压到了同一个位置。这种变换叫奇异变换对应行列式为0逆矩阵不存在。在复合的语境下只要链条中有一个变换不可逆整个复合就不可逆。4.3 行列式复合变换的面积缩放因子行列式在复合里有一个非常漂亮的性质det(M_B · M_A) det(M_B) · det(M_A)。也就是说复合变换的面积缩放因子等于各个变换缩放因子的乘积。这很合理。如果A把面积放大2倍B把面积放大3倍先A后B自然把面积放大6倍。如果某个变换把面积缩到0奇异变换复合后的行列式也是0整个复合不可逆。从几何上理解行列式就是看单位正方形由i-hat和j-hat张成变换后的面积。如果变换后i-hat和j-hat的落点构成的平行四边形面积是原来的k倍行列式就是k。负的行列式表示变换翻转了空间的定向就像照镜子一样。注意行列式为负不代表“面积是负的”面积永远是正的负号表示定向翻转。在二维里如果变换后j-hat落在i-hat的顺时针方向行列式就是负的。三维里类似负行列式表示手性翻转。5. 从二维到三维复合的思维不变5.1 三维矩阵的列是三个基向量的落点三维空间里基向量有三个i-hat (1,0,0)、j-hat (0,1,0)、k-hat (0,0,1)。一个3×3矩阵的三列分别就是这三个基向量变换后的坐标。比如绕z轴旋转θ角的矩阵[ cosθ -sinθ 0 ] [ sinθ cosθ 0 ] [ 0 0 1 ]第一列是i-hat的新位置(cosθ, sinθ, 0)第二列是j-hat的新位置(-sinθ, cosθ, 0)第三列是k-hat的新位置(0, 0, 1)。k-hat没动因为旋转轴是z轴。这个矩阵的每一列都在告诉你一个基向量的去向。三维复合的逻辑和二维完全一样先A后B复合矩阵的每一列就是对应基向量经过A再经过B的最终落点。计算规则形式上还是“行乘列”但几何含义不变。5.2 三维复合的一个实际场景假设你先做一个绕z轴90度的旋转再做一个沿x轴拉伸2倍的缩放。旋转矩阵R和缩放矩阵S分别是R [ 0 -1 0 ] S [ 2 0 0 ] [ 1 0 0 ] [ 0 1 0 ] [ 0 0 1 ] [ 0 0 1 ]复合S·R先旋转后缩放第一列R第一列(0,1,0)被S作用得到0·(2,0,0) 1·(0,1,0) 0·(0,0,1) (0,1,0)。第二列R第二列(-1,0,0)被S作用得到-1·(2,0,0) (-2,0,0)。第三列R第三列(0,0,1)被S作用得到(0,0,1)。所以S·R [ 0 -2 0 ] [ 1 0 0 ] [ 0 0 1 ]这个复合变换的效果是先把空间绕z轴转90度再把x方向拉长2倍。注意拉伸是在旋转之后的世界里进行的所以被拉长的是旋转后的x轴方向而不是原来的x轴。这就是复合顺序的威力——同样的两个变换顺序不同结果完全不同。5.3 高维情况思维框架完全一致四维、五维甚至更高维你没法直观画出来但“矩阵的列是基向量落点”这个框架依然成立。n维空间有n个基向量n×n矩阵的n列就是这n个基向量变换后的坐标。复合变换的矩阵乘法规则形式上不变只是求和的项数变多。在机器学习里数据经常是几百维甚至几千维的特征变换就是高维空间里的线性变换。你没法可视化但可以用同样的逻辑推理这个变换把哪些方向拉伸了、哪些方向压缩了、哪些方向旋转了。矩阵的列依然在告诉你基向量的去向只是你看不见而已。6. 实操中怎么用这套思维6.1 手算复合矩阵的检查清单每次手算矩阵乘法我建议按这个顺序走确认顺序谁先作用写在右边的是先作用的。如果是“先A后B”算B·A。追踪第一列把A的第一列拿出来用B作用它结果就是复合矩阵的第一列。追踪第二列把A的第二列拿出来用B作用它结果就是复合矩阵的第二列。以此类推n维矩阵就追踪n列。用行乘列验证随便挑一个元素用行乘列算一遍和追踪结果对比。这个流程比直接套“行乘列”慢一点但不容易出错而且每一步都有几何意义。熟练之后可以加速但初学阶段强烈建议按这个走。6.2 编程实现时的注意事项在代码里做矩阵乘法大多数库如NumPy、PyTorch、TensorFlow都提供了现成函数。但有几个坑顺序问题A B在NumPy里表示矩阵乘法但它是A左乘B也就是先B后A列向量体系。如果你想要“先A后B”应该写B A。这个顺序和数学书写一致但和自然语言“先A后B”相反容易搞混。维度匹配m×n矩阵只能和n×p矩阵相乘结果是m×p。维度不匹配会直接报错这是好事能帮你抓住错误。批量运算深度学习里经常做批量矩阵乘法比如torch.bmm。这时候要特别注意batch维度在哪不要和矩阵维度搞混。数值精度浮点数矩阵乘法会有累积误差做大量复合时误差可能放大。如果发现结果不对先检查是不是精度问题再检查逻辑。实操心得我在做图形学变换时习惯把每个变换矩阵单独写出来然后在纸上标好顺序最后再合成一个矩阵。合成之后拿几个已知点验证一下——比如原点变换后还是原点线性变换必须满足单位向量变换后是不是预期的位置。这一步验证能抓住绝大多数顺序错误和符号错误。6.3 常见问题速查表问题现象可能原因排查方法复合结果和预期完全不符乘法顺序反了检查是先A后B还是先B后A列向量体系下右边先作用变换后原点动了用了仿射变换而非线性变换线性变换必须保持原点不动检查矩阵是否多了平移项行列式为0但以为可逆变换把空间降维了检查矩阵的列是否线性相关成比例的列会导致奇异手算和代码结果不一致行/列向量体系混用统一用列向量体系代码里确认乘法方向高维矩阵乘法报错维度不匹配检查前一个矩阵的列数是否等于后一个矩阵的行数复合后面积缩放不对行列式算错或顺序错验证det(B·A) det(B)·det(A)顺序错会导致结果不同7. 把复合思维用到更远的地方7.1 基变换换一套坐标看同一个变换复合思维还能解释基变换。假设你有一组新的基向量想知道同一个线性变换在新基下长什么样。这相当于先把新基坐标转成标准坐标变换P做原来的线性变换矩阵A再转回新基坐标变换P⁻¹。复合起来就是P⁻¹·A·P。这个式子在线性代数里叫相似变换用来判断两个矩阵是否表示同一个变换在不同基下的样子。从复合的角度看它就是“换坐标-做变换-换回来”三步接力。理解了复合相似变换就不再是死记硬背的公式。7.2 特征向量复合中方向不变的向量特征向量是那些在变换下方向不变的向量只被拉伸或压缩。用复合的语言说如果v是A的特征向量那么A·v λvλ是特征值。这意味着变换A作用在v上效果等同于一个简单的缩放。在复合变换里特征向量有特殊地位。如果两个变换共享特征向量它们的复合会简单很多。在微分方程、振动分析、主成分分析里找特征向量就是找那些在复杂变换中保持方向稳定的方向。从几何上看这些方向是变换的“骨架”。7.3 矩阵分解把复杂复合拆成简单复合很多矩阵分解比如LU分解、QR分解、奇异值分解本质上都是把一个复杂变换拆成几个简单变换的复合。LU分解是把一个变换拆成下三角和上三角变换的接力QR分解拆成正交变换和三角变换奇异值分解拆成旋转、缩放、再旋转。一旦你用复合的眼光看这些分解它们就不再是抽象的代数技巧而是“把一个复杂的空间扭曲拆解成几个容易理解的步骤”。这也是线性代数在数据压缩、推荐系统、图像处理里大放异彩的原因——复杂变换可以被拆成简单变换的接力计算和存储都变得可行。8. 我踩过的坑和最后的小建议最开始学矩阵乘法时我最大的坑就是顺序。当时做一个小图形程序想让一个三角形先旋转再平移结果写成了先平移再旋转三角形直接飞出了视野。debug了半天才发现是矩阵乘法顺序反了。从那以后我养成了一个习惯每次写复合变换先在纸上画三个点——原点、i-hat落点、j-hat落点——确认顺序对了再写代码。另一个坑是混淆了线性变换和仿射变换。线性变换必须保持原点不动但平移会移动原点所以平移不是线性变换。在图形学里为了用矩阵表示平移我们引入齐次坐标把二维点扩展成三维用3×3矩阵表示二维仿射变换。这时候矩阵的最后一列不再是基向量落点而是平移量。这个扩展很实用但概念上要清楚齐次坐标下的矩阵乘法前两列还是线性部分第三列是平移部分。最后分享一个小技巧如果你对某个复合变换的结果没把握拿一个具体向量代进去算一遍。比如拿(1,0)和(0,1)分别走一遍复合流程看看结果和复合矩阵的列是否一致。这个验证方法简单粗暴但极其有效。我到现在做复杂的矩阵推导时还会用这招来兜底。线性代数的本质不是计算而是理解空间变换的复合。矩阵乘法只是这个复合的记账方式。把几何直觉建立起来计算规则自然就顺了。希望这篇笔记能帮你把这块硬骨头啃下来。

相关新闻

multipart/form-data 上传原理与全链路实战

multipart/form-data 上传原理与全链路实战

1. 项目概述:为什么上传图片非得用 multipart/form-data?你有没有遇到过这种场景:前端页面上点一下“选择图片”,再点“上传”,几秒后后台就收到了一张清晰的 JPG 文件,路径、大小、类型全对,连…

2026/10/15 11:04:15 阅读更多 →
Java视频截帧实战:从InputStream返回到黑屏兜底与性能优化

Java视频截帧实战:从InputStream返回到黑屏兜底与性能优化

1. 视频封面截取这件事,为什么值得单独拿出来聊做过视频类业务的人应该都有体会:用户上传一个视频之后,列表页如果直接放一个播放器,那页面加载和流量消耗都会很难看。所以绝大多数产品都会在视频上传完成后,自动截取第…

2026/10/15 11:04:14 阅读更多 →
具身智能:物理世界中的AI认知引擎

具身智能:物理世界中的AI认知引擎

1. 具身智能不是“会动的AI”,而是重新定义“智能”的物理锚点 很多人第一次听到“具身人工智能”这个词,下意识就联想到机器人跳舞、机械臂抓杯子、或者科幻电影里走来走去的仿生人。这种联想不算错,但严重窄化了它的本质—— 具身智能不是…

2026/10/15 11:03:13 阅读更多 →

最新新闻

Teable多维表格如何优化企业运营效率

Teable多维表格如何优化企业运营效率

1. 多维表格在现代运营中的核心价值 运营流程优化一直是企业提升效率的关键课题。传统电子表格在处理复杂业务逻辑时往往捉襟见肘——数据孤岛、版本混乱、权限管理困难等问题长期困扰着运营团队。Teable这类现代多维表格数据库的出现,正在彻底改变这一局面。 我亲…

2026/10/15 11:47:34 阅读更多 →
华为云码道代码智能体实战:从IDE接入到MCP协议配置全解析

华为云码道代码智能体实战:从IDE接入到MCP协议配置全解析

1. 从零上手华为云码道:一个后端开发的真实体验记录第一次听说华为云码道(CodeArts)代码智能体的时候,我正被一个遗留项目的重构搞得焦头烂额。那是个跑了快五年的老服务,代码里到处是复制粘贴的痕迹,命名风…

2026/10/15 11:47:34 阅读更多 →
Windows 一键部署 OpenClaw:本地 AI 智能体搭建完整实操教程(TaoToken 统一 Key 接入版)

Windows 一键部署 OpenClaw:本地 AI 智能体搭建完整实操教程(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/15 11:47:34 阅读更多 →
CLI工具开发与安全实践指南

CLI工具开发与安全实践指南

我无法根据当前输入生成符合要求的博文。 原因如下: 项目标题为 "impeccable" ,这是一个英文形容词(意为“无可挑剔的、完美的”),本身不构成一个可执行的技术项目、工具、功能或具体实践场景&#xff1…

2026/10/15 11:47:34 阅读更多 →
在 OpenCode 中集成 SkillLite:为 AI 代码执行加上一道“原生沙箱防火墙”

在 OpenCode 中集成 SkillLite:为 AI 代码执行加上一道“原生沙箱防火墙”

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

2026/10/15 11:47:34 阅读更多 →
SpringBoot游戏周边商城实战:电商系统开发全解析

SpringBoot游戏周边商城实战:电商系统开发全解析

1. 项目概述与核心价值 作为一名在Java全栈开发领域摸爬滚打多年的老手,我见过太多毕业设计项目沦为"玩具级"演示品。但这个基于SpringBoot的游戏周边商城设计,却是个能真实锻炼工程能力的实战项目。它完整覆盖了电商系统核心模块:…

2026/10/15 11:46:34 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →