矩阵运算从入门到实战:核心原理、代码实现与避坑指南
1. 为什么矩阵运算值得单独拎出来讲很多人第一次接触线性代数都是在课堂上被一堆行列式、逆矩阵、秩的定义砸晕的。公式背了一堆考试也能过但一到实际用的时候——比如写代码做图像变换、跑一个最小二乘拟合、或者看机器学习里的反向传播推导——就完全不知道从哪下手。这个问题的根源不在于你不够聪明而在于大多数教材把矩阵运算讲成了“定义加性质”的堆砌没有告诉你这些运算到底在干什么、为什么要这么定义、什么时候该用哪种运算。我自己带过不少刚入行的朋友也见过很多工作了三五年的开发者在遇到需要矩阵运算的场景时第一反应是去搜“numpy矩阵乘法怎么写”而不是去想“这里到底应该用哪种乘法”。这两者的差别很大。前者是查字典后者是真正理解了工具。这篇文章的目标就是帮你从“查字典”过渡到“理解工具”把矩阵运算这件事从考试题变成你手里真正能用的东西。矩阵运算的核心其实就那几类加法、数乘、乘法、转置、求逆、行列式。但每一类背后都有它的几何意义和代数动机。比如矩阵乘法为什么定义成“行乘列”而不是对应元素相乘因为矩阵乘法的本质是线性变换的复合行乘列的定义恰好对应了“先做一个变换再做另一个变换”的结果。你把这个想通了后面什么结合律、分配律、不满足交换律全都是自然而然的事情。这篇文章适合谁看如果你正在学线性代数觉得矩阵运算很抽象那这篇能帮你把抽象的定义落地。如果你已经学过但忘得差不多了现在因为工作或项目需要重新捡起来那这篇能帮你快速恢复记忆并且补上当年没讲透的部分。如果你是想搞机器学习、计算机图形学、信号处理这些方向那矩阵运算是你绕不过去的基本功这篇可以当作一个系统性的梳理。下面我会从矩阵运算的整体设计思路开始讲然后逐个拆解每种运算的细节和实操要点接着给出完整的计算流程和代码实现最后整理一些常见问题和排查技巧。整个过程中我会尽量用生活化的类比来解释同时保证数学上的严谨性不打折扣。2. 矩阵运算的整体设计与思路拆解2.1 矩阵运算的分类逻辑矩阵运算看起来名目繁多但其实可以按照“运算对象”和“运算结果”两个维度来分类。按运算对象分有矩阵与标量的运算比如数乘、矩阵与矩阵的运算比如加法、乘法、矩阵与向量的运算可以看作矩阵与矩阵的特例。按运算结果分有返回标量的比如行列式、迹、返回矩阵的比如加法、乘法、转置、求逆、返回向量的比如矩阵与向量相乘。这种分类方式的好处是当你遇到一个新的运算时可以快速定位它属于哪一类从而判断它大概有什么性质。比如返回标量的运算通常用于度量矩阵的某种“大小”或“体积”返回矩阵的运算通常用于变换或分解返回向量的运算通常用于映射或投影。我个人的经验是初学者最容易混淆的是“矩阵乘法”和“逐元素乘法”也叫Hadamard积。这两个运算在符号上有时都用星号或点号表示但在数学意义和代码实现上完全不同。矩阵乘法是行乘列求和逐元素乘法是对应位置相乘。在numpy里*是逐元素乘法或np.dot才是矩阵乘法。这个坑我见过太多人踩了后面会详细讲。2.2 为什么矩阵乘法要定义成“行乘列”这是线性代数里最核心的一个定义也是最容易被忽略其动机的一个。很多人背下了“行乘列”的规则但从来没想过为什么不能是别的规则。要理解这个定义你得先理解矩阵的本质。一个m×n的矩阵A可以看作一个从n维空间到m维空间的线性变换。也就是说如果你有一个n维向量x那么Ax就是变换后的m维向量。现在假设你还有另一个变换B它把m维向量映射到k维向量。那么你先做A再做B得到的结果是B(Ax)。这个复合变换本身也是一个线性变换它应该对应一个k×n的矩阵C。那么C和A、B是什么关系答案就是CBA其中BA的乘法定义正是“行乘列”。换句话说矩阵乘法的定义不是随便定的它是为了让“矩阵乘法对应线性变换的复合”这个性质成立而量身定做的。如果你把乘法定义成逐元素相乘那这个性质就没了矩阵也就失去了作为线性变换表示的意义。这个理解一旦建立起来很多性质就变得显然了。比如为什么矩阵乘法满足结合律因为变换的复合满足结合律。为什么一般不满足交换律因为先做变换A再做B和先做B再做A结果通常不一样。为什么单位矩阵在乘法中起恒等作用因为恒等变换复合任何变换都不改变结果。2.3 矩阵运算在实际场景中的角色矩阵运算不是孤立存在的它在各个领域都有具体的应用场景。在计算机图形学里平移、旋转、缩放这些操作都是用矩阵乘法来实现的。一个三维模型的所有顶点坐标组成一个矩阵乘以一个变换矩阵就得到了变换后的模型。在机器学习里一个神经网络的一层就是一次矩阵乘法加一次非线性激活反向传播的核心也是矩阵运算。在信号处理里傅里叶变换可以写成矩阵乘法的形式。在优化问题里最小二乘解的公式里直接包含矩阵求逆和乘法。这些场景的共同点是它们都需要对大量数据做线性变换而矩阵运算提供了一种统一、高效、可组合的方式来表达这些变换。你理解了矩阵运算就等于拿到了进入这些领域的钥匙。2.4 手算与代码实现的取舍学矩阵运算有一个绕不开的问题到底要不要手算我的建议是小规模的矩阵比如2×2、3×3一定要手算几遍因为手算能帮你建立对运算规则的肌肉记忆也能让你在遇到问题时快速定位是概念错了还是计算错了。但一旦规模超过4×4手算的效率就极低了这时候应该果断转向代码实现。代码实现方面Python的numpy是最常用的工具MATLAB在学术界也很流行Julia在数值计算领域也有不少拥趸。选择哪个工具取决于你的具体场景但核心的运算规则是一样的。我下面会以numpy为主来演示因为它的生态最丰富资料也最多。3. 核心运算细节与实操要点3.1 矩阵加法与数乘最简单的两种运算矩阵加法要求两个矩阵的维度完全相同然后对应位置的元素相加。这个运算的几何意义很直观如果你把矩阵看作一个向量空间中的点那矩阵加法就是向量加法。数乘则是用一个标量去乘矩阵的每一个元素几何上相当于对变换进行缩放。这两个运算的性质都很“乖”满足交换律、结合律、分配律。但有一个坑要注意矩阵加法不能和数乘混淆。有时候在代码里你想把一个标量加到矩阵的每个元素上但直接写A 1在numpy里是合法的广播机制在数学上这其实不是标准的矩阵加法而是“矩阵加标量”的一种扩展运算。这个在数学教材里通常不会讲但在代码里很常见。注意在数学上矩阵和标量相加是没有定义的。numpy的广播机制让A 1变得合法但这本质上是把标量扩展成了一个全1矩阵再相加。理解这一点可以避免你在阅读代码时产生困惑。3.2 矩阵乘法核心中的核心矩阵乘法是线性代数里最重要的运算没有之一。它的定义是如果A是m×n矩阵B是n×p矩阵那么CAB是一个m×p矩阵其中C的第i行第j列元素等于A的第i行与B的第j列的内积。这个定义有几个关键点。第一A的列数必须等于B的行数否则乘法没有定义。第二结果矩阵的行数等于A的行数列数等于B的列数。第三乘法不满足交换律AB和BA可能都有定义但结果不同也可能只有一个有定义。手算矩阵乘法时我习惯用“行乘列”的方式取A的第一行取B的第一列对应元素相乘再求和得到C的第一个元素。然后A的第一行乘B的第二列得到C的第二个元素以此类推。这个过程可以用一个简单的口诀来记“左行右列对应相乘求和得元”。代码实现方面numpy里用A B或np.dot(A, B)来做矩阵乘法。注意A * B是逐元素乘法不是矩阵乘法。这个区别在调试时非常关键因为逐元素乘法不会报维度错误只要两个矩阵维度相同但结果完全不对。3.3 转置行列互换的简单操作转置就是把矩阵的行和列互换。一个m×n矩阵转置后变成n×m矩阵。转置的符号通常是在矩阵右上角加一个T比如A的转置记作A^T。转置的几何意义是“对偶变换”。在线性代数里向量有行向量和列向量之分转置就是在这两者之间转换。转置还有一些有用的性质比如(AB)^T B^T A^T这个性质在推导公式时经常用到。注意顺序是反的这和逆矩阵的性质(AB)^{-1} B^{-1} A^{-1}类似。在numpy里转置用A.T或np.transpose(A)。对于一维数组转置没有效果因为一维数组既不是行向量也不是列向量。如果你需要把一维数组变成列向量可以用A.reshape(-1, 1)。3.4 逆矩阵不是所有矩阵都有逆矩阵的定义是如果存在一个矩阵B使得ABBAII是单位矩阵那么B就是A的逆矩阵记作A^{-1}。只有方阵才可能有逆矩阵而且不是所有方阵都有逆矩阵。一个方阵有逆矩阵的充要条件是它的行列式不为零或者说它是满秩的。逆矩阵的几何意义是“逆变换”。如果A表示一个变换那么A^{-1}就表示把这个变换撤销。比如A表示旋转30度那A^{-1}就表示旋转-30度。手算逆矩阵对于2×2矩阵有一个简单公式如果A [[a, b], [c, d]]那么A^{-1} (1/(ad-bc)) * [[d, -b], [-c, a]]。对于更大的矩阵手算就非常繁琐了通常用高斯-约当消元法。代码里用np.linalg.inv(A)来求逆。注意在实际计算中直接求逆矩阵往往不是最好的选择。如果你需要解线性方程组Axb用np.linalg.solve(A, b)比先求A^{-1}再乘b更高效也更稳定。直接求逆在数值上容易出问题尤其是当矩阵接近奇异时。3.5 行列式矩阵的“体积缩放因子”行列式是一个标量它衡量的是矩阵对应的线性变换对空间的“体积缩放”程度。对于2×2矩阵[[a, b], [c, d]]行列式是ad-bc。对于更大的矩阵行列式的计算就复杂多了通常用拉普拉斯展开或LU分解。行列式的几何意义很直观如果你把一个单位正方形或单位立方体经过矩阵变换后得到的图形的面积或体积就是行列式的绝对值。行列式的符号则表示变换是否改变了空间的定向比如镜像会改变定向行列式为负。行列式为零意味着变换把空间压缩到了更低的维度比如把二维平面压缩成一条线。这种情况下矩阵不可逆因为信息丢失了没法撤销。代码里用np.linalg.det(A)来计算行列式。注意数值计算中行列式可能非常接近零但不等于零这时候需要判断矩阵是否“数值奇异”。3.6 逐元素乘法与矩阵乘法的区别这是初学者最容易搞混的地方我单独拎出来讲。逐元素乘法Hadamard积是对应位置相乘要求两个矩阵维度完全相同。矩阵乘法是行乘列求和要求左矩阵的列数等于右矩阵的行数。在numpy里A * B是逐元素乘法A B是矩阵乘法。在MATLAB里A .* B是逐元素乘法A * B是矩阵乘法。这个区别在写代码时一定要搞清楚因为用错了不会报错如果维度恰好满足但结果完全不对。我个人的习惯是在代码里永远用来做矩阵乘法用np.multiply或*来做逐元素乘法并且在注释里写清楚。这样可以避免很多调试时间。4. 完整实操流程与代码实现4.1 环境准备与基础操作首先确保你安装了numpy。如果还没装用pip装一下pip install numpy然后导入并创建几个矩阵import numpy as np A np.array([[1, 2], [3, 4]]) B np.array([[5, 6], [7, 8]])这里A和B都是2×2矩阵。你可以用A.shape来查看维度用A.dtype来查看数据类型。4.2 加法和数乘的实现# 矩阵加法 C A B print(C) # 输出: # [[ 6 8] # [10 12]] # 数乘 D 3 * A print(D) # 输出: # [[ 3 6] # [ 9 12]]这两个操作很直观对应位置相加或每个元素乘以标量。4.3 矩阵乘法的实现与验证# 矩阵乘法 E A B print(E) # 输出: # [[19 22] # [43 50]] # 逐元素乘法 F A * B print(F) # 输出: # [[ 5 12] # [21 32]]你可以手动验证一下E的第一个元素15 27 5 14 19和输出一致。F的第一个元素是1*5 5这是逐元素乘法的结果。4.4 转置、逆矩阵和行列式# 转置 G A.T print(G) # 输出: # [[1 3] # [2 4]] # 行列式 det_A np.linalg.det(A) print(det_A) # 输出: -2.0000000000000004 # 逆矩阵 A_inv np.linalg.inv(A) print(A_inv) # 输出: # [[-2. 1. ] # [ 1.5 -0.5]] # 验证 A A_inv 是否等于单位矩阵 print(A A_inv) # 输出: # [[1.00000000e00 0.00000000e00] # [2.22044605e-16 1.00000000e00]]注意最后的结果中有一个很小的数2.22e-16这是浮点数精度误差实际上就是0。在数值计算中你永远不能直接用来判断两个浮点数是否相等而应该用np.allclose。4.5 解线性方程组的实操假设你要解方程组 2x y 5 x 3y 10写成矩阵形式就是Axb其中A[[2,1],[1,3]]b[5,10]。A_eq np.array([[2, 1], [1, 3]]) b_eq np.array([5, 10]) # 方法一用solve x np.linalg.solve(A_eq, b_eq) print(x) # 输出: [1. 3.] # 方法二先求逆再乘不推荐 x2 np.linalg.inv(A_eq) b_eq print(x2) # 输出: [1. 3.]两种方法结果一样但solve在数值上更稳定尤其是对于大规模矩阵。我强烈建议在实际项目中使用solve而不是先求逆。4.6 矩阵运算在图像变换中的应用示例为了让你更直观地理解矩阵运算的用途这里给一个图像旋转的例子。假设你有一个二维点(x, y)要绕原点旋转θ角度变换矩阵是R [[cosθ, -sinθ], [sinθ, cosθ]]import numpy as np theta np.pi / 4 # 45度 R np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]]) point np.array([1, 0]) rotated R point print(rotated) # 输出: [0.70710678 0.70710678]这个结果说明点(1,0)旋转45度后变成了(√2/2, √2/2)符合预期。如果你有一组点可以把它们组成一个矩阵每一列是一个点然后一次性做变换points np.array([[1, 0], [0, 1], [-1, 0], [0, -1]]).T rotated_points R points print(rotated_points)这就是矩阵运算在图形学中最基本的应用模式。5. 常见问题与排查技巧实录5.1 维度不匹配错误这是最常见的错误。矩阵乘法要求左矩阵的列数等于右矩阵的行数。如果你看到类似“shapes (2,3) and (2,2) not aligned”的错误那就是维度不匹配。排查方法打印两个矩阵的shape确认左矩阵的第二个维度和右矩阵的第一个维度相等。如果不相等要么转置其中一个要么检查你的公式是不是写错了。5.2 矩阵乘法与逐元素乘法混淆这个前面已经强调过了但值得再提一次。在numpy里*是逐元素乘法是矩阵乘法。如果你从MATLAB转过来特别容易搞混因为MATLAB里*是矩阵乘法.*才是逐元素乘法。排查方法检查你的代码里用的是哪个运算符。如果你期望的是矩阵乘法但结果看起来像是逐元素相乘那大概率是用错了运算符。5.3 逆矩阵不存在或数值不稳定如果你调用np.linalg.inv时遇到“Singular matrix”错误说明矩阵不可逆。可能的原因包括矩阵行列式为零、矩阵不是方阵、矩阵接近奇异。排查方法先检查矩阵是否是方阵然后计算行列式看是否接近零。如果行列式很小但不为零矩阵可能是“病态”的求逆结果会非常不稳定。这时候可以考虑用伪逆np.linalg.pinv或者用正则化方法。5.4 浮点数精度问题矩阵运算涉及大量浮点数运算精度误差是不可避免的。比如你验证A A_inv是否等于单位矩阵时非对角线元素可能不是精确的0而是像1e-16这样的小数。排查方法永远不要用来比较浮点数矩阵用np.allclose(A, B)来判断两个矩阵是否在容差范围内相等。默认容差是1e-8对于大多数场景够用了。5.5 常见问题速查表问题现象可能原因排查方法解决方案维度不匹配错误左矩阵列数≠右矩阵行数打印shape转置或调整公式结果与预期不符用了逐元素乘法而非矩阵乘法检查运算符改用或np.dotSingular matrix错误矩阵不可逆计算行列式用伪逆或正则化结果有微小非零值浮点数精度误差检查数量级用np.allclose判断内存溢出矩阵太大检查矩阵维度分块计算或降维5.6 独家避坑技巧第一个技巧在写涉及矩阵运算的代码时先用小矩阵比如2×2或3×3手动验证一遍确认逻辑正确后再换成大规模数据。这样可以快速定位是逻辑错误还是数值问题。第二个技巧如果你不确定某个运算的结果应该是什么形状先在一张纸上画出矩阵的维度然后按照“左行右列”的规则推导结果维度。这个习惯能帮你避免80%的维度错误。第三个技巧对于需要反复使用的矩阵运算考虑用np.linalg里的专用函数而不是手动组合基本运算。比如解方程用solve而不是inv计算伪逆用pinv而不是手动实现。这些专用函数在数值稳定性和效率上都经过了优化。第四个技巧当你需要做大量矩阵乘法时注意numpy的广播机制和内存布局。有时候调整一下矩阵的存储顺序比如C顺序和Fortran顺序能带来显著的性能提升。这个在科学计算中很重要但在一般应用中可能感知不明显。6. 从运算到应用矩阵运算的延伸思考矩阵运算本身只是一套规则但它的价值在于它能帮你解决实际问题。我见过很多人学完线性代数后觉得没用是因为他们只学了规则没学应用。实际上只要你涉及到多维数据的线性变换矩阵运算就是最自然的工具。比如在数据分析中你有一个数据矩阵X每一行是一个样本每一列是一个特征。你想做特征降维PCA的核心就是计算X的协方差矩阵然后做特征值分解。这整个过程都是矩阵运算。再比如在推荐系统中用户-物品评分矩阵的分解本质上也是矩阵运算。在控制理论中系统的状态转移用矩阵描述稳定性分析涉及特征值。在量子力学中物理量用矩阵表示测量对应特征值。这些应用的共同点是它们都需要对矩阵做运算而且运算的顺序和方式直接影响结果。你理解了矩阵运算就等于理解了这些应用的底层语言。回到最开始的问题矩阵运算到底怎么学我的建议是先理解每种运算的定义和几何意义然后手算几个小例子建立直觉接着用代码实现并验证最后在实际问题中反复使用。这个过程可能需要几周甚至几个月但一旦建立起来它就会成为你工具箱里最强大的工具之一。我个人在实际操作中的体会是矩阵运算的难点不在于规则本身而在于知道什么时候该用哪种运算。这个判断力只能通过实际项目来培养。所以如果你正在学线性代数不要只做题找一个实际的小项目来做比如用矩阵运算实现一个简单的图像旋转或者用最小二乘法拟合一条直线。当你看到矩阵运算真的能解决问题时那些抽象的定义就会变得具体起来。最后再分享一个小技巧如果你在推导矩阵公式时卡住了试着把矩阵写成元素形式然后逐个元素推导。虽然这样比较繁琐但能帮你理清思路。等你熟练了再回到矩阵形式就会发现一切都顺理成章。

相关新闻

全球省市区层级经纬度数据包:JSON与SQL双格式落地指南

全球省市区层级经纬度数据包:JSON与SQL双格式落地指南

简介:这是一个全球地理层级与经纬度数据资源包,面向地图应用开发、地区选择组件构建及地理信息系统分析场景。包内含完整的全球各国(除中国外)及中国(含特别行政区)省市区县的层级结构数据,并配…

2026/10/9 17:04:36 阅读更多 →
YOLOv8航拍屋顶识别实战:从数据标注到切片推理的避坑指南

YOLOv8航拍屋顶识别实战:从数据标注到切片推理的避坑指南

简介:本资源为基于YOLOv8的航拍屋顶识别目标检测项目代码包,面向深度学习入门与进阶开发者、计算机视觉方向学生及需要落地航拍场景检测任务的工程人员。包内共467个文件,以227个md说明文档、130个py训练与推理脚本、43个yaml及12个yml配置文…

2026/10/9 17:04:36 阅读更多 →
5499元iPhone与TikTok收入榜首背后的技术杠杆

5499元iPhone与TikTok收入榜首背后的技术杠杆

1. 项目概述:这不是一条新闻,而是一组技术信号的交叉验证“极客日报:曝 iPhone 13 系列定价有望下调:起售价或低于 5499 元;TikTok 成为全球收入最高 App”——这个标题表面看是两条消费电子与移动应用领域的商业快讯&…

2026/10/9 17:04:36 阅读更多 →

最新新闻

Canvas动态心电图实战:滚动波形绘制与性能优化

Canvas动态心电图实战:滚动波形绘制与性能优化

简介:这份资源面向前端开发者与医疗健康类应用开发者,聚焦HTML5 Canvas在实时生理数据可视化中的落地实践,解决浏览器端动态绘制心电图、模拟监护仪效果的问题。包内共7个文件,以js脚本、html页面、css样式为主,辅以tx…

2026/10/9 17:35:49 阅读更多 →
URL编码原理与实战:精准编码、三层语境与避坑指南

URL编码原理与实战:精准编码、三层语境与避坑指南

1. 这个工具不是“点一下就完事”的玩具,而是开发者每天要摸十几次的呼吸面罩你有没有过这样的经历:调试一个接口,明明参数拼得严丝合缝,但后端日志里却显示name%E4%BD%A0%E5%A5%BD&city后面直接断了?或者把一段带…

2026/10/9 17:35:49 阅读更多 →
Android随笔-ContentProvider 数据共享实战:从零搭建可复用的跨进程数据访问层

Android随笔-ContentProvider 数据共享实战:从零搭建可复用的跨进程数据访问层

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

2026/10/9 17:35:49 阅读更多 →
微信阅读小程序+SSM毕业设计:源码、论文与避坑全攻略

微信阅读小程序+SSM毕业设计:源码、论文与避坑全攻略

简介:基于SSM框架与微信开发者工具构建的阅读类小程序毕业设计资源,面向高校计算机相关专业学生以及需要完成毕设、课设的开发者。项目明确区分用户端小程序与后台管理端,涵盖图书浏览购买、订单支付、章节在线阅读、留言互动、收藏管理、阅读…

2026/10/9 17:35:49 阅读更多 →
Java后端数据传输与转换:从DTO到数据库的完整链路

Java后端数据传输与转换:从DTO到数据库的完整链路

Java 数据传输与转换详解:从 DTO 到数据库的完整链路做 Java 后端这几年,我最大的感受是:真正让项目出问题的,往往不是那些花哨的高并发方案,而是每天都要碰无数次的数据传输与数据转换。从 Controller 接收 JSON&…

2026/10/9 17:35:49 阅读更多 →
Claude Code Mods实操指南:给AI装上手,让终端交互更智能

Claude Code Mods实操指南:给AI装上手,让终端交互更智能

如果你跟我一样是个天天泡在终端里的开发者,应该体会过这种落差:AI 对话模型能说会道,却没办法直接帮你执行一个命令、读一个文件、改一个配置。最近社区里聊得很多的 Claude Code Mods,正好补上了这块短板——它把 Claude 从“会…

2026/10/9 17:34:48 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →