Excel中ROW与COLUMN函数:从自动编号到矩阵运算的实战指南

做了十年表哥表姐,我最常听的一句话是:“帮我把这个表重新排个序,序号也跟着变一下。”如果序号是手工敲进去的,那接下来就是一场手动改号的噩梦。但如果从一开始就用ROW函数生成序号,就算数据排序翻来覆去,序号也稳如泰山。今天这篇就围着Excel里最不起眼、但实战价值极高的两个函数——ROW和COLUMN,从最基础的序号生成讲到矩阵运算和动态引用,把它们的用法一次讲透。

这篇文章适合谁?刚入门的Excel用户可以在里面找到最稳妥的自动编号方案;做数据分析、报表模板的老手,也能看到几个不那么常见的矩阵和查找套路。ROW和COLUMN本身很简单,难得是“什么时候想到用它”和“怎么跟其他函数配合”。我尽量把这两件事讲清楚,每个案例都给可直接复制的公式和踩坑提醒。

1. 先把这两个函数看透:语法与返回逻辑

很多教程一上来就贴公式,但如果你不清楚函数“到底返回什么东西、什么时候返回数组”,后面遇到问题会一头雾水。所以先用一点篇幅把底层逻辑理清楚,这部分搞懂了,后面所有用法都是顺水推舟。

1.1 语法形态与基础示例

ROW和COLUMN的语法完全对称,都是只有一个可选参数的简单函数:

=ROW([reference]) =COLUMN([reference])

reference参数可有可无,具体行为分三种情况:

  • 参数省略,直接写成=ROW():返回当前公式所在单元格的行号。比如在C5单元格写=ROW(),结果就是5。
  • 参数是单个单元格引用,比如=ROW(D8):返回该单元格所在的行号,结果是8。这个引用可以是当前表内的单元格,也可以是其他工作表的单元格。
  • 参数是一个区域引用,比如=ROW(A1:A10):普通公式里返回区域第一行的行号,也就是1;但如果按数组公式或动态数组方式处理,会返回一个数组{1;2;3;4;5;6;7;8;9;10}。

COLUMN同理,只是把“行”换成“列”。=COLUMN()在F列返回6,=COLUMN(B2)返回2,=COLUMN(A:D)作为动态数组公式会返回{1,2,3,4}。

这里面最关键的一点是:ROW和COLUMN返回的是“位置编号”,不是单元格的内容。哪怕A1单元格的值是空,=ROW(A1)照样返回1。位置编号的价值在于,它是一个不依赖单元格内容的稳定数字,这正好是生成序列的天然原料。

1.2 三种调用方式:要不要写参数,差别很大

三种调用方式在实战里的用途完全不同,我分别说一下。

省略参数主要用于“当前位置”参与运算的场景。典型例子是条件格式里判断当前行是否为偶数行,公式写成=MOD(ROW(),2)=0,随着条件格式作用到每一行,ROW()自动变成对应行号。这种情况下写ROW(A1)反而容易因为引用错位出问题。

单格引用是生成下拉序列的核心技巧。在A1输入=ROW(A1),下拉填充到A10,公式会依次变成=ROW(A2)、=ROW(A3)……结果就是1到10。这里的窍门是:引用本身会跟随填充位置自动变化,所以行号也跟着递增。想生成从5开始、步长3的序列,就用=(ROW(A1)-1)*3+5。

区域引用配合新版Excel的动态数组功能,能一次性返回一列完整序列。在任意空白单元格输入=ROW(1:10),按回车后结果会自动溢出到10行,这在旧版本里必须按Ctrl+Shift+Enter才能实现。区域引用还有个别名场景:=ROW(INDIRECT("1:"&A1)),可以动态生成一个行数由A1决定的序列,这是很多动态公式的基础。

提示:写ROW(A:A)也是合法写法,它会返回引用列中每行的行号数组。但区域引用越大,计算开销越高,日常建议把区域收窄到实际需要的范围,比如ROW(1:1000)而不是ROW(1:1048576)。

2. 从1到N:用ROW和COLUMN生成各类序列

序列生成是ROW和COLUMN最经典的应用,几乎每个表格都用得上。常见的有四种:正序序列、倒序序列、隔行序列、分段重复序列。前三种比较简单,第四种稍微绕一点,但做分组编号和排班表的时候特别好用。

2.1 正序、倒序与隔行序列的生成套路

正序序列,最标准的就是=ROW(A1)下拉,或者用动态数组=ROW(1:10)直接生成1到10。顺便说一句,很多人习惯用=ROW()代替=ROW(A1),在第二行开始的单元格里,下拉效果也一样,但在表格中间操作时可读性不如=ROW(A1),因为看到公式的人一眼能判断生成的是从1开始的序列。

倒序序列,核心公式是=11-ROW(A1),下拉十行就得到10、9、8……1。通用写法是=N+1-ROW(A1),其中N是序列最大值。这个套路做“最近日期在前”的查询辅助列时很常用。

隔行序列,常用的公式是=ROW(A1)*2,下拉得到2、4、6……;=ROW(A1)*2-1得到1、3、5……。做隔行填充背景、隔行提取数据时,配合MOD函数使用效果更好。比如判断奇偶行,写成=MOD(ROW(),2)。

这三个基础序列本质上都是“单参数线性变换”,核心逻辑就是:让ROW(A1)随着填充位置从1开始递增,再用加减乘除映射到你需要的数列上。理解了这个逻辑,任何等差序列你都能自己推出来,不需要死记公式。

2.2 分段重复序列:分组编号的核心技巧

分段重复序列的意思是:1、1、1、2、2、2、3、3、3这样的结构,每组重复3次。这种编号在分组报表、考试座位、排班表里非常常见。

最朴素的公式是=INT((ROW(A1)-1)/3)+1。拆开看:ROW(A1)-1从0开始递增,除以3再取整,0到2的结果都是0,3到5的结果都是1,所以加1之后就变成每组重复3次的递增序列。想每行重复2次,就把分母改成2;想从0开始编号,就去掉末尾的+1。

反向的“每个值重复、但值本身也递增”也很常用,比如1、2、3、1、2、3循环序列,公式是=MOD(ROW(A1)-1,3)+1。这个在制作三班倒值班表时非常实用,配合日期字段可以做自动轮换。

我又发现一个更灵活的写法:=CEILING(ROW(A1)/3,1)也能实现同样的分组重复效果。CEILING向上取整的写法在某些长公式里可读性更好,你自己习惯用哪个都行,重点是理解“除法取整”这个思路。

2.3 新函数SEQUENCE进场之后的取舍

现在新版Excel和许多国产表格都有SEQUENCE函数,可以直接生成序列,很多场景确实比ROW省事。但我不建议立刻抛弃ROW,原因有三。

第一,兼容性。你做的模板可能要发给还在用旧版Excel的同事,旧版没有SEQUENCE函数,公式会直接报错。ROW是元老级函数,所有版本都认识它。

第二,场景差异。SEQUENCE擅长一次性生成数组,但如果你需要在筛选、排序后保持序号稳定,或者在条件格式里逐行判断,ROW的“随位置自动变化”特性仍然是最方便的。

第三,习惯问题。ROW+COUNTA这类组合在做动态区域的旧式公式里,至今仍然是主流方案,SEQUENCE在旧式区域公式里反而有些水土不服。

实际建议:新工作表优先用SEQUENCE,简单直接;但凡是需要分发给别人、跨版本使用的模板,用ROW更稳。我在自己的模板库里基本是两套方案并存,按发布对象选择。

3. 二维场景:行号列号如何撑起矩阵运算

很多人以为ROW和COLUMN只是生成序列用的,其实它们更大的价值藏在二维场景里:用ROW(1:n)和COLUMN(A:m)构造一个矩形坐标网格,任何需要“行列定位”的运算都可以基于这个网格展开。这一节讲三个比较有代表性的矩阵应用。

3.1 用双坐标构造区域矩阵

最经典的案例是“九九乘法表”。做一个10×10的乘法表,只需在一个空白单元格输入:

=ROW(1:9)*COLUMN(A:I)

在新版Excel里直接回车,公式会自动溢出成一个9行9列的数组,每个位置的值等于行号乘以列号,1×1到9×9全部自动生成。旧版按Ctrl+Shift+Enter也能得到同样结果。

这个案例的妙处在于:乘法表的横轴是COLUMN,纵轴是ROW,交汇点的结果正好是行列坐标的乘积。理解了这个逻辑,你就可以把任何“横轴是一个序列、纵轴是另一个序列”的二维问题,都转化成ROW和COLUMN的坐标运算。

三维坐标也一样,比如生成三维数组的某一切面,可以用=ROW(1:4)&"-"&COLUMN(A:D)生成4×4的坐标标签网格。这种网格在建立模拟数据、做敏感性分析表时特别有用,不需要手工横向填充再纵向填充一大片坐标值。

3.2 乘法口诀表与坐标定位:为什么用“相对网格”而不是“绝对引用”

刚才的乘法表公式如果改成=ROW(A1)*COLUMN(A1),效果完全不同。后者下拉、右拖时,公式会变成=ROW(A2)*COLUMN(B1),行列引用跟着单元格一起移动,生成的结果和区域数组公式一样,但它是“填充出来的公式”,不是“一个数组公式”。两种方案结果看起来没差,但动态数组的写法只有一个公式、一个实例,修改和维护成本更低。

网格公式的通用套路是:先确定行数m和列数n,=某个含ROW的表达式&某个含COLUMN的表达式。比如生成“第2行第3列”这种标签,公式是="第"&ROW(A1)+1&"行第"&COLUMN(A1)+1&"列",下拉右拖就能覆盖整个区域。坐标标签网格通常不直接展示给用户,而是作为中间辅助区域,配合INDEX从另一张表取值。

我用这种网格做过一次模拟排班表:横向是日期,纵向是人员,中间用=MOD(ROW()+COLUMN(),3)+1填充,实现了每个位置自动轮换的班次值,随手就能验证不同班次频率下的覆盖情况。这类“坐标参与计算”的用法,在排班、布局、抽样这类场景里相当实用。

3.3 矩阵转置的另类实现

矩阵转置通常是用TRANSPOSE函数,但用COLUMN和ROW组合也能做到,而且能帮你理解转置的本质。假设A1:F10是原始数据,想把它转置成10行6列,在新版Excel里可以写:

=INDEX(A1:F10, COLUMN(A:F), ROW(1:10))

这个公式的窍门是:把原始区域的行参数改成COLUMN数组,列参数改成ROW数组,等于把行列坐标互换,从而让数据在转置后的位置上重新排列。公式有点绕,但它揭示了TRANSPOSE背后的索引逻辑。理解之后,你就明白为什么转置后的公式里行、列的位置是反着写的。

实际工作中直接转置用TRANSPOSE就够了,不需要刻意绕路。但当你需要在转置的同时做条件判断、替换值、调整顺序时,INDEX+ROW/COLUMN的方案比TRANSPOSE灵活得多,因为中间可以嵌套任何你想要的逻辑。

4. 组合拳:INDEX、MATCH、OFFSET与行号列号的协同作战

单独一个ROW能做的事情有限,但它和INDEX、MATCH、OFFSET搭在一起,才真正进入高级应用的主场。这一节讲三组最常用的组合,每一组都能解决一类实际问题。

4.1 INDEX+ROW实现反向查找和顺序提取

先从一个简单需求说起:左侧是产品列表,右侧要按“从下往上”的顺序提取产品名。不用VBA、不用辅助列,一个公式搞定:

=INDEX(A$1:A$10, 11-ROW(A1))

下拉十行,就会依次返回A10、A9……A1。逻辑很简单:ROW(A1)从1递增,11减掉它就从10递减,INDEX根据这个递减的行号从区域底部往上取数。反向提取在“最近记录优先展示”的报表里很常见。

更实用的是“一对多查询”。比如有一张订单表,每个客户有多笔订单,你想在另一个表里把某个客户的所有订单列出来。传统做法用VLOOKUP只能返回第一条。改用以下数组公式就可以:

=IFERROR(INDEX(订单明细!$B$2:$B$100, SMALL(IF(订单明细!$A$2:$A$100=$E$1, ROW($A$2:$A$100)-1), ROW(A1))), "")

公式看着长,但拆开就明白了:IF部分把匹配客户名的行号挑出来,SMALL取其中第k小的行号,k由ROW(A1)生成,INDEX再按这个行号取值。ROW在这里充当了“计数器”的角色,负责随着下拉依次取第1个、第2个、第3个匹配结果。

这里的核心思想值得单独说:ROW不只是生成序号,它还可以在IF数组判断中充当“行号探测器”,把符合条件的行号筛选出来再做二次索引。我此前做几千行的订单查询,用这个方法比筛选副本再粘贴快得多,而且查询结果自动联动更新。

4.2 多条件交叉查询与动态范围

多条件查询最直接的方案是INDEX+MATCH组合:=INDEX(数据区, MATCH(条件1, 列1,0), MATCH(条件2, 行2,0))。这里行、列两个坐标分别用MATCH找到,和ROW、COLUMN的关系不大。但一旦条件变成“第几次出现”“第几个非空值”,就需要ROW入场。

比如找一个区域里第3个非空单元格的值,公式可以写成:

=INDEX(A:A, SMALL(IF(A1:A100<>"", ROW(A1:A100)), 3))

IF部分返回所有非空单元格的行号数组,SMALL取第3个,INDEX按行号取值。做数据清洗、提取有效记录时,这个套路比逐个判断高效得多。

动态范围方面,最常见的写法是把ROW和COUNTA组合:

=OFFSET($A$1, 0, 0, COUNTA(A:A), 1)

这是老式动态区域的经典方案:用COUNTA统计非空单元格个数作为区域高度。但这套方案有个隐患——中间有空行时统计就不准了。更稳的写法是用MATCH在列表里定位最后一个非空值的行号。两者各有适用场景,列个对比表更清楚:

方案公式优点缺点
COUNTA计数OFFSET+COUNTA写起来快中间空行会误判
MATCH定位INDEX+MATCH(9^9, A:A)跳过空行更稳要求列内数字型数据为主
动态数组溢出INDEX+ROW(区域)结构最简单仅新版Excel可用

4.3 配合OFFSET构造动态数据区域

OFFSET本身是个轻量级函数,第一参数是起点,后面几参数分别是偏移行、偏移列、区域高度、区域宽度。把ROW塞进去当偏移参数,就能生成“随当前行变化而移动的窗口”。典型例子是求最近3期数据的移动平均:

=AVERAGE(OFFSET($B$2, ROW(A1)-1, 0, 3, 1))

下拉一行,ROW(A1)变成ROW(A2),OFFSET的起点也跟着从B2下移到B3,窗口始终框住当前行开始的3行数据。做滚动统计、移动平均、跌幅连续判断时,这类公式比手动拖选区域省事百倍。

使用OFFSET有个地方要注意:它是易失性函数,工作簿里用得多了,每次改动任意单元格都会触发全簿重算,大表会明显卡顿。如果你只是要一个“随着新数据自动扩展的求和区域”,用INDEX构造区域引用比OFFSET重算负担小。例如动态求和可以写:

=SUM(B2:INDEX(B:B, COUNTA(B:B)))

这个公式用INDEX返回B列最后一个非空单元格的位置,从而圈定B2到底的动态区域。INDEX不是易失性函数,性能上更友好。能不用OFFSET的时候,我一般优先用INDEX方案。

5. 实战中绕不开的坑:常见问题与排查实录

ROW和COLUMN本身不容易出错,但跟它们搭配的场景里,我踩过不少坑。这里把高频问题汇总成一张速查表,再挑三个最典型的展开讲。

5.1 问题速查:公式对但结果不对,先看这几点

现象可能原因排查方向
下拉公式后序号不变公式写了=ROW()且没有相对引用换成=ROW(A1)
插入行后序号断档用固定数字生成的辅助列改用ROW生成
区域数组公式只返回第一个值旧版Excel未按Ctrl+Shift+Enter检查是否用了数组三键
公式返回值比预期大1区域起始行不是1减去起始行号,如ROW()-1
删除行后公式报#REF!引用了被删除的单元格检查引用是否跨删除区域
排序后序号错乱序号列本身是静态值换用ROW生成并参与排序

速查表的排查思路有个共同点:先判断“你的序号是活的还是死的”。活序号由公式生成,随位置变化;死序号是填充进去的固定值。大部分序号问题,根源都是错用了死序号。

5.2 插入/删除行后序号错乱怎么救

这是我在工作中遇到最多的一类问题。表格画好了,序号从1排到200,老板在中间又插了20行,问你要序号重新排好。如果序号是纯手工填的,你得逐个改;如果是=ROW()-1这类活序号,插入行后序号自动连续,完全不用管。

但活序号也有翻车场景。比如在已经筛选的状态下插入行,或者把序号列单独放在旁边,排序时忘了把序号列一起选择,都会导致序号跟数据错位。我的建议是:序号列一旦用公式生成,就把整列保护起来,或至少养成“排序时全选整个表区域”的习惯。

还有个容易忽略的细节:=ROW()和=ROW(A1)在插入行列后表现不同。=ROW()返回的是当前行号,插入一行后原来第二行的数据跑到第三行,公式自动返回3;=ROW(A1)因为引用的单元格被推到了A2,也返回2,但在某些整行移动的场景下,这种引用跟随反而会让你迷惑。写公式前想清楚:你希望序号跟内容走,还是跟行号走。一般报表里希望跟行号走,此时=ROW()更贴合直觉。

5.3 版本差异与数组公式的兼容性

动态数组是近几年表格软件的最大变化。在老版本Excel里,输入=ROW(1:10)必须按Ctrl+Shift+Enter完成数组输入,公式两边会自动加上花括号{},编辑公式时这三键少按一次,结果就错得莫名其妙。

在新版本里,同一个公式直接回车就能溢出,不需要三键。这一变化让公式写起来更简单,但也带来兼容问题:你在新版做好的文件发给旧版用户,动态数组公式可能变成#SPILL!错误或显示旧式数组,然后整个结果区域都报错。

关于兼容性,我的处理策略很简单。给不同版本用户发模板时,先问清楚对方用什么版本;不确定的话,尽量用旧式数组公式或非数组方案。比如生成1到10的序列,旧版兼容写法是=ROW(INDIRECT("1:10")),也能保证结果正确。另外,凡是用了新函数(如SEQUENCE、UNIQUE)的公式,在分享时我在单元格批注里写明“需使用新版Excel”,省得后续收到一堆报错追问。

6. 综合案例与经验沉淀

前面把基础用法、矩阵应用、组合技巧和常见问题都过了一遍,最后用两个完整的实战案例把它们串起来,再分享一些我个人的操作习惯。

6.1 工资条批量生成:一个公式搞定

发工资明细是每个做人事、财务的人绕不开的活。手工做工资条,一条数据要拆成表头行、数据行、空行,几百人的工资表操作下来手指都要抽筋。用ROW做一个通用模板,一条公式直接搞定。

假设工资明细在Sheet1的A2:E100,第一行是表头。工资条区域每3行一组:第1行是表头格式,第2行是数据,第3行留空。在工资条工作表的A2输入:

=IF(MOD(ROW(),3)=0, "", IF(MOD(ROW(),3)=1, 明细!A$1, INDEX(明细!A$2:A$100, INT((ROW()-2)/3)+1)))

这个公式三层判断:MOD(ROW(),3)=0时是空行,返回空;MOD(ROW(),3)=1时是表头行,取明细表第一行对应列的表头;否则是数据行,用INDEX按INT((ROW()-2)/3)+1计算当前应该显示第几条记录。把公式向右填充到总列数,再向下填充到覆盖所有记录的组数,工资条就批量生成了。

这里ROW扮演了双重角色:一是定位“当前处于组内第几行”的分组器,二是换算“当前属于第几条记录”的计数器。理解这个分组思想,你就能举一反三做工资条、成绩条、标签页。

6.2 隔行分组、多级编号的表格设计

表格设计里还有一类需求也很常见:多级编号。比如一级序号是1、2、3,每个一级下面有1.1、1.2,再下面还有1.1.1。手敲编号一旦中间增删行,全部要重排。用ROW自动生成的做法是:

一级编号:=INT((ROW(A1)-1)/每段行数)+1,跟前面分组序列一个逻辑。 二级编号:=MOD(ROW(A1)-1, 每段行数)+1,生成组内序号。 组合起来:=INT((ROW(A1)-1)/3)+1&"."&MOD(ROW(A1)-1,3)+1。

这样每3行一组自动生成1.1、1.2、1.3、2.1……增删行之后只要调整公式里的“每段行数”参数,编号整体自动重排。模板化之后,别人拿到这个表只需要往里面填内容,编号永远自动正确。

另外一个实用技巧是隔行分组变色。想给按3行一组的数据块交替加底色,条件格式公式用=INT((ROW()-1)/3)是奇数还是偶数来判断,就不用手动一块一块填颜色了。这类公式的本质,还是把ROW定位成“块内位置”来做逻辑判断。

6.3 我的一些实操心得与坏习惯提醒

最后说几个我这些年用下来的习惯,不一定都对,但对新人避开弯路有帮助。

第一,能少引用就少引用。ROW函数本身不重,但结合OFFSET这类易失性函数时,几百行数据就能让表格明显变慢。我给自己定了个规矩:模板里OFFSET数量不超过五处,超过就用INDEX方案替代。

第二,写公式顺手加注释。表格软件里有批注功能,我经常在复杂公式的单元格旁批注一行“此列由ROW自动生成序号,请勿手工修改”。这个习惯救了我很多次,尤其是把模板交给别人维护之后。后来我发现大家都不看批注也照改,干脆把序号列锁定了事。

第三,别迷信“一个万能公式”。有些问题用辅助列反而更清晰。一对多查询、多级编号,我经常先用一列辅助列算出组号、行号,再让最终公式引用辅助列。辅助列让公式可读性大增,排查问题时一眼能看出哪一步算错了,代价只是多占一个不显眼的列。

第四,也是最想强调的一点:学会用“位置”思考问题。ROW和COLUMN的强大之处,在于把“你在表格中的位置”变成可计算的数字。遇到任何跟顺序、行列、分组、重复相关的问题,先问一句“这里能不能用位置编号来表示”,很多难题就迎刃而解了。

做表格做到后来,真正值钱的不再是背了多少公式,而是看到一个问题能迅速判断用什么思路拆解。ROW和COLUMN作为最底层的“位置函数”,恰恰是培养这种思路的最佳起点。我到现在做新模板时,还会时不时回到这两个最老的函数身上,从最朴素的“位置”出发重新设计公式——这种“返璞归真”的做法,往往比堆砌复杂函数更可靠。

相关新闻

BP神经网络电力负荷预测:从数据处理到误差分析的全流程实战

BP神经网络电力负荷预测:从数据处理到误差分析的全流程实战

算负荷预测这行的人&#xff0c;应该都有过类似的经历&#xff1a;调度室要明天的96点负荷曲线&#xff0c;手里拿到的却只有一堆历史负荷数据集&#xff0c;时间跨度动辄几个月甚至几年。第一反应肯定是用线性回归、ARIMA这些经典时序方法去套&#xff0c;但真正跑起来就会发现…

2026/10/21 3:51:33 阅读更多 →
RAG实战教程:基于LangChain与Chroma构建知识库问答系统

RAG实战教程:基于LangChain与Chroma构建知识库问答系统

先给大家交个底&#xff1a;这篇文章不是让你复制粘贴就能跑通那么简单&#xff0c;而是希望你能真正理解 RAG 检索增强生成到底在解决什么问题、每一步代码在做什么、遇到报错该怎么处理。我会用一套完整可运行的代码带你走一遍“文档加载 → 文本切分 → 向量化 → 检索 → 生…

2026/10/21 3:51:33 阅读更多 →
FPGA可配置时钟分频器:2~1024整数分频Verilog实现

FPGA可配置时钟分频器:2~1024整数分频Verilog实现

简介&#xff1a;本资源是一份面向FPGA初学者与数字电路设计学习者的Verilog时钟分频器完整工程实现&#xff0c;聚焦于解决高频系统时钟向多路低频控制信号转换的核心需求&#xff0c;适用于课程实验、综合实训及小型数字系统开发场景。压缩包共155个文件&#xff0c;涵盖19个…

2026/10/21 3:51:33 阅读更多 →

最新新闻

从囤积资料到掌握技能:个人技能管理闭环方法论

从囤积资料到掌握技能:个人技能管理闭环方法论

你有没有过这种感觉&#xff1a;收藏夹里躺了几百个教程&#xff0c;网盘里存了一堆学习资料&#xff0c;每天刷各种干货文章&#xff0c;觉得自己一直在"学东西"&#xff0c;可真到了要用的时候&#xff0c;却发现自己什么都不会&#xff1f;我太熟悉这种状态了。前…

2026/10/21 4:32:49 阅读更多 →
OpenClaw实战:让大模型能动手的本地执行引擎

OpenClaw实战:让大模型能动手的本地执行引擎

1. 为什么需要OpenClaw&#xff1a;从聊天到执行的缺口1.1 聊天再聪明&#xff0c;也替你做不了事这两年我用过不少AI助手&#xff0c;从网页版到本地部署的各种开源模型都折腾过。说实话&#xff0c;光论对话能力&#xff0c;现在的开源模型已经相当能打了。写文案、列提纲、解…

2026/10/21 4:32:49 阅读更多 →
REA:面向高频数据场景的前端实时事件聚合器设计与实践

REA:面向高频数据场景的前端实时事件聚合器设计与实践

半年前我在本地新建了一个空目录&#xff0c;名字就叫rea&#xff0c;没有说明文档&#xff0c;没有 package.json&#xff0c;只有三个字母。后来我给它补全了一个含义&#xff1a;REA Real-time Event Aggregator&#xff0c;一个轻量级实时事件聚合器。这算是把项目名从“名…

2026/10/21 4:32:49 阅读更多 →
发布-订阅模式实战:系统解耦、消息中间件与故障排查全解析

发布-订阅模式实战:系统解耦、消息中间件与故障排查全解析

做后端开发的这几年&#xff0c;我遇到最多的设计问题之一就是系统之间怎么通信。早期项目里&#xff0c;A系统的数据一变&#xff0c;就得硬编码调用B系统、C系统的接口&#xff0c;改一个接口就要联动改好几个调用方。中间只要有一个系统升级&#xff0c;整个调用链就跟着紧张…

2026/10/21 4:32:49 阅读更多 →
C#纯托管读取PCD点云:格式解析、避坑指南与二次开发

C#纯托管读取PCD点云:格式解析、避坑指南与二次开发

简介&#xff1a;一套C#读取点云数据的示例工程&#xff0c;面向C#初级开发者与三维视觉学习者&#xff0c;演示如何从文本文件中逐行读取点云数据&#xff0c;并将大量离散的三维坐标点解析为Point3D对象&#xff0c;适用于3D重建、机器视觉、自动驾驶等场景的入门实践。压缩包…

2026/10/21 4:32:49 阅读更多 →
项目标题‘rea’解析:为何模糊缩写无法支撑技术内容创作

项目标题‘rea’解析:为何模糊缩写无法支撑技术内容创作

项目标题是“rea”&#xff0c;但提供的输入内容中&#xff0c;项目正文为空、关键词未列出、摘要描述缺失&#xff0c;且网络搜索部分为纯空行&#xff08;&#xff09;&#xff0c;无任何实际信息支撑。作为一名从业十多年、每天要拆解几十个真实项目标题的资深博主&#xff…

2026/10/21 4:31:49 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50: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/20 9:50:45 阅读更多 →