MATLAB矩阵操作全攻略:从创建、索引到运算与避坑
学MATLAB绕不开矩阵就像学中文绕不开汉字。前几天整理自己的学习笔记发现大部分基础内容其实都和矩阵有关。这篇笔记主要是记录我入门MATLAB时最常碰到的矩阵操作怎么创建、怎么索引、怎么运算以及一堆当时踩过的坑。如果你是刚开始接触MATLAB或者想系统回顾矩阵这部分的基础知识这份笔记应该能帮上忙。1. 为什么MATLAB里一切皆矩阵1.1 矩阵不是普通的“二维表”MATLAB的全称是Matrix Laboratory翻译过来就是“矩阵实验室”所以矩阵这个概念几乎刻在它骨子里。刚开始学习时我总习惯把矩阵理解成Excel表格后来才发现这个类比很危险。矩阵在MATLAB里不仅仅是一个表格而是一个有严格维度定义的数据对象。更关键的是MATLAB里的标量、向量、矩阵、多维数组全都统一在“数组”这个框架下一个数可以看成1×1矩阵一个行向量是1×n矩阵一个列向量是n×1矩阵二维矩阵自然就是m×n再往上还可以有页、可以有更高维度。这个设计带来的直接好处是你不需要像C语言那样区分数组、指针、结构体几乎所有数据都可以用矩阵来表达。比如你读一张图片它其实是一个三维矩阵长宽是图片尺寸第三维是RGB通道你录一段声音它往往是一个很长的列向量一个表格数据导入后也常常变成一个二维矩阵。理解这一点后你再看MATLAB的很多操作就顺了因为大部分内置函数都在和矩阵打交道。1.2 矩阵的维度、行数、列数和元素总数在入门阶段有三个函数很容易混淆size、length和numel。size(A)返回的是A每个维度的大小比如一个3行4列的矩阵size(A)返回[3 4]numel(A)返回矩阵里总的元素个数也就是行数乘列数3×4的矩阵返回12length(A)则有点坑它返回的是最大维度的值对于3×4矩阵length返回4如果这个矩阵恰好是100×2length居然返回100。我当时就犯过一个大意要用一个矩阵的行数结果用length(A)去拿遇到列数比行数多的情况行数拿错后续整个循环全乱套。后来我给自己定了规矩——要行数就用size(A,1)要列数就用size(A,2)要总数就用numel(A)尽量不要用length只有在明确知道矩阵是向量时才用它。这个习惯看起来小但能少踩很多坑。把矩阵想象成一栋房子行是楼层列是房间号。只知道“最长的那一排”并不能让你知道房子到底有几层。size才是那个告诉你完整结构的尺子。2. 矩阵创建手动输入与快捷函数2.1 方括号、空格、逗号和分号的使用规则创建矩阵最直接的方式就是使用方括号。行元素之间用空格或逗号分隔行与行之间用分号分隔。例如A [1 2 3; 4 5 6; 7 8 9]这个命令生成一个3×3矩阵。如果你想创建行向量可以写作v [1 2 3]创建列向量可以写作v [1; 2; 3]或者写成v [1 2 3].。我特别喜欢用分号创建因为一眼能看出矩阵形状。这里有一个细节如果你在命令行运行命令时结尾没有加分号MATLAB会立刻把结果打印在屏幕上。这在学习时很有用但如果你用脚本跑一个很大的矩阵忘记加分号会把整个命令窗口刷爆运行速度也会变慢。我的习惯是所有创建矩阵的语句后面都加分号需要查看时单独运行变量名。2.2 冒号表达式与linspace生成等差向量MATLAB里最灵活的向量生成工具是冒号表达式基本格式是start:step:end。比如1:2:9生成[1 3 5 7 9]10:-2:2生成[10 8 6 4 2]如果中间不写步长默认步长为1比如1:5生成[1 2 3 4 5]。这里有个容易忽略的地方如果start大于end而步长又是正数得到的是空矩阵。我见过不少初学者写5:2:1结果得到一个空数组然后在后面索引时直接报错。如果你需要生成一个固定数量的向量而不是靠步长计算可以用linspace。linspace(0,1,5)生成从0到1之间均匀分布的5个点0 0.25 0.5 0.75 1。这个方法特别适合画图时构造横坐标比冒号表达式更不容易出错。还有一个类似的logspace用于生成对数等分的向量比如做频响分析时常用。我建议初学者优先掌握linspace因为它不依赖步长的精度计算数量由你直接指定思路更直观。2.3 zeros、ones、eye与随机矩阵预分配和初始化创建特殊矩阵的函数非常多但最核心的四个是zeros、ones、eye和rand。zeros(m,n)生成m×n全零矩阵ones(m,n)生成全一矩阵eye(n)生成n×n单位矩阵即对角线为1、其余为0rand(m,n)生成0到1之间均匀分布的随机数矩阵randn(m,n)生成服从标准正态分布的随机数矩阵。为什么要单独提zeros因为它在编程中经常用来“预分配”。如果你要写一个循环把结果逐个存进矩阵最忌讳的做法是每次循环让矩阵自动增长比如A(end1) x这样每增加一个元素MATLAB都要重新分配内存循环次数一多运行时间会成倍增加。正确做法是先把矩阵尺寸定好用zeros初始化然后循环里直接赋值。比如要存100个计算结果就预先写result zeros(100,1)这是MATLAB性能优化的基本功。2.4 矩阵拼接和重复cat、repmat与repelem创建矩阵之后经常需要把两个矩阵拼在一起。横向拼接可以用[A B]纵向拼接用[A; B]但更规范的写法是用cat函数C cat(1, A, B); % 按行方向拼接 D cat(2, A, B); % 按列方向拼接cat(1,...)相当于vertcatcat(2,...)相当于horzcat。对于三维数据还可以用cat(3,A,B)在第三维上拼接这在处理多通道图像时很常见。有时候需要把一个小矩阵重复成大矩阵这时候用repmat和repelem。repmat(A, 2, 3)把A在行方向重复2次、列方向重复3次相当于整体复制。repelem(A, 2, 3)则是将每个元素各重复2次和3次。举个例子A [1 2; 3 4]; repmat(A, 1, 2) % 结果[1 2 1 2; 3 4 3 4] repelem(A, 1, 2) % 结果[1 1 2 2; 3 3 4 4]两者用途完全不同。需要把一组数据平铺到更大区域时我会用repelem需要把整个模式复制多份时用repmat。3. 矩阵索引访问元素与子区域3.1 下标索引与线性索引两个角度访问同一个数访问矩阵元素有两种方式下标索引和线性索引。下标索引就是指定行和列比如A(2,3)表示第2行第3列的元素。线性索引则只用一个数字表示按“列优先”的顺序数过去。所谓列优先就是先数完第一列再数第二列依次往后。例如A [10 20 30; 40 50 60]; A(3) % 结果是20因为存储顺序是10, 40, 20, 50, 30, 60很多初学者在这里卡住觉得A(3)应该是第三个数也就是“第一行第三列”的30但实际是20。原因就是MATLAB在内存中把矩阵按列来排列。如果想从行列下标得到线性索引可以用sub2ind反向用ind2sublinearIndex sub2ind(size(A), 2, 3); % 求第2行第3列的线性索引 [row, col] ind2sub(size(A), 5); % 线性索引5对应的行列有人说用下标不就行了吗为什么还要理解线性索引因为很多内置函数返回的位置是线性索引比如后面要说的find如果不理解列优先拿到索引值后根本对应不上元素。3.2 冒号用法与end关键字提取行、列和子块提取矩阵的某一行、某一列几乎离不开冒号。A(:,1)提取第一列A(1,:)提取第一行A(1:2,2:3)提取左上角2×2子块。这里的冒号表示“所有”。end是一个Magic Word它表示“最后一个索引位置”。比如A(end,:)取最后一行A(end-1, end)取倒数第二行最后一列。end在循环和动态编程里特别有用。我记得自己最早写代码时要往矩阵末尾追加一行总是先数矩阵有多少行再赋值。后来发现直接写A(end1,:) newRow就行这个操作会在原矩阵下方新增一行。这种写法不仅简洁还避免了手动维护行数出错。3.3 逻辑索引用条件直接筛选元素逻辑索引是我觉得MATLAB最优雅的地方之一。你可以用一个真/假矩阵作为索引只有对应位置为true的元素才会被选中。例如A [1 5 3; 2 8 4]; logicalIndex A 4; result A(logicalIndex);result会返回一个列向量里面是所有满足大于4的元素。这等价于两步合并成一步A(A4)。这个写法在处理数据清洗时极好用比如把矩阵里所有负数清零直接写A(A0)0。需要注意逻辑索引的矩阵维度必须和原矩阵相同或者维度可以被隐式扩展。逻辑索引的选择结果永远是列向量形式因为MATLAB会把选出来的元素按线性顺序依次排列。如果你希望保留行列位置可以先转成下标也就是用find。3.4 修改矩阵赋值、删除与扩展索引不但可以读还可以写。A(2,2)100修改单个元素A(:,2)[10;20;30]整列替换A(2,:)[]删除第2行注意这里用空方括号[]作为赋值内容时MATLAB会直接删掉相应行同时矩阵行数减一。删除操作在循环里要格外小心。如果你在for i1:size(A,1)循环中删除某一行循环次数不会动态变化那么跳过某些行或者索引越界几乎是必然的。我的经验是如果要做逐行筛选删除最好先通过逻辑索引一次性选出要保留的行或者倒着循环。比如从后往前删for i size(A,1):-1:1这样索引不会乱。4. 矩阵运算数组运算与线性代数运算4.1 最关键的区分A*B与A.*B矩阵运算中最容易混淆的就是乘号。A * B是线性代数中的矩阵乘法要求A的列数等于B的行数结果第(i,j)个元素是A第i行与B第j列的点积。A .* B是对应元素相乘要求A和B维度完全一致结果矩阵的每个元素是A(i,j)*B(i,j)。我见过太多新手用*去做对应元素相乘结果要么维度不匹配报错要么得到完全错误的结果。记住一个口诀带点的运算是在说“按位置算”不带点的乘除法是线性代数里的矩阵运算。这个区分同样适用于除法和幂次A./B是逐元素相除A/B是右除A.^2是每个元素求平方A^2是矩阵自乘。从物理意义上想.*更像是对照片每个像素做亮度调整*则更像坐标系变换两者服务于完全不同的场景。4.2 转置与共轭转置一个撇关系的两个世界在MATLAB里单引号是共轭转置点号加单引号.才是普通的非共轭转置。当矩阵是实数时两者结果一样一旦涉及复数结果就完全不同了。例如Z [12i, 3-4i]; Z % 得到 [1-2i; 34i] Z. % 得到 [12i; 3-4i]如果你在做傅里叶变换、滤波器设计这类复数运算忘记加地方实会用错。建议在没有复数参与的时候也统一使用.这样代码更安全读代码的人也不会误解你的意图。这是一个非常小但很专业的习惯。4.3 左除和右除解线性方程组的最佳姿势很多人初学MATLAB时会找逆矩阵inv(A)来解线性方程Axb书上有时也这么写。但实际做数值计算时更好用的是左除运算符\x A \ b;它的意思是求解线性方程组A*x b。MATLAB内部会根据A的特点自动选择高斯消去、LU分解、Cholesky分解等方法比直接用inv(A)*b更快、更稳定。右除/则对应x*A b形如的方程比如x b / A。你可能会问为什么不推荐inv因为求逆本身计算量更大而且当矩阵接近奇异时数值误差会被放大。用\相当于让MATLAB悄悄选一条更安全的路径。我平时几乎不写inv除非是要在公式里显式写出逆矩阵。4.4 常用函数速查从行列式到特征值矩阵基础必须掌握的函数大概有这么几类线性代数类det行列式、rank秩、trace迹、eig特征值和特征向量、svd奇异值分解、norm范数、cond条件数统计类sum求和、mean均值、median中位数、std标准差、max最大值、min最小值、sort排序数组操作类diff差分、cumsum累积和、flip翻转、unique去重。举个例子A [1 2 3; 4 5 6; 7 8 10]; sum(A) % 默认对每一列求和结果[12 15 19] sum(A, 2) % 对每一行求和结果[6; 15; 25] max(A, [], 1) % 对每一列取最大值 max(A, [], 2) % 对每一行取最大值注意max和min的写法很特别想按维度求值时要传一个空数组[]作为第二个参数否则max(A)会把整个矩阵当成一个向量来比较。这个小细节踩一次就记住了。5. 矩阵形变与批量处理技巧5.1 reshape的列优先陷阱与permute的正确用法reshape可以把矩阵改成任意维度只要元素总数不变。例如A 1:12; B reshape(A, 3, 4);结果B是3行4列但顺序是列优先填充的第一列是1、2、3第二列是4、5、6如此类推。如果你想按行优先的顺序重新排布必须先对原数据做一些处理。一个常见需求是你有一个按行采集的信号序列想把它重排成多行多列但reshape默认按列排可能会打乱信号顺序。这时可以用转置或permute来解决。比如把行向量1:12变成3行4列且按行顺序排列可以先reshape再转置B reshape(A, 4, 3);permute是高维版的“转置”适合处理三维矩阵的维度交换。比如permute(M, [2 1 3])会把前两维互换。对于初学者我建议先用permute做实验观察维度变化理解后再用于更复杂的数据处理。5.2 用find与逻辑矩阵做批量筛选在数据处理中经常需要知道哪些元素满足条件以及它们的位置。find是解决这个问题的利器。A [10 20 30; 40 50 60]; [row, col] find(A 25); linearIndex find(A 25);不带赋值时find(A 25)返回满足条件的线性索引向量。如果你写成[row, col] find(...)则返回行列下标。这个行为与逻辑索引互补逻辑索引直接给你值find给你位置两者结合可以高效地对满足条件的位置做修改。比如你想把矩阵中所有大于100的替换为100可以直接用A(A100)100但如果你想以某个特定顺序逐个修改这些位置那就需要先拿到线性索引再循环处理。5.3 隐式扩展自动广播维度的新特性从R2016b开始MATLAB支持隐式扩展让不同维度的矩阵在操作时自动扩展。比如A [1 2 3; 4 5 6]; b [10; 20]; C A b;这里A是2×3b是2×1。按照老版本规则维度不一致会报错新版本里b会沿着列方向自动复制成2×3然后再相加。同理A - [1 2 3]会把行向量自动复制到每一行。这个功能很方便但也带来隐患如果代码里有维度不匹配的bug不再报错而是默默做广播产生一个很大但很蠢的结果。我的建议是利用隐式扩展时务必先用size确认原来矩阵的形状特别是做矩阵和向量混合运算时最好心里明确哪个维度会被扩展。5.4 利用all、any和逻辑运算简化判断当你想检查矩阵中是否所有元素满足条件、是否存在某些元素满足条件all和any是必用的。A [1 2 3; 4 5 6]; all(A 0) % 返回 [1 1 1]因为每列所有元素都大于0 any(A 5, 2) % 对每一行判断返回 [0; 1]配合方向参数可以处理行和列两个维度。比如你想筛选出所有行中至少含有一个大于5的行可以用rows any(A 5, 2); selected A(rows, :);这种写法比循环简洁得多也是“向量化思维”的典型例子。矩阵基础学得好不好一个很重要的标志就是你写代码时还会不会动不动就写for循环。6. MATLAB矩阵编程常见问题与避坑6.1 索引越界和维度不一致我见过最多的报错就是“Index exceeds the number of array elements”和“Matrix dimensions must agree”。索引越界通常是因为你用了固定大小去访问动态矩阵比如在循环里只判断了行数没判断列数。解决这类问题的关键是每次操作前想清楚矩阵当前的实际大小可以用size、numel确认。维度不一致则多发生在点运算时两个矩阵需要对位相乘结果一个2×3一个3×2直接报错。遇到这种情况我通常会立刻检查两个矩阵的size输出重点看是不是转置忘了写。这类错误在脚本运行中很常见但定位并不难难的是你是否养成了先查看维度的习惯。6.2 循环中动态增长矩阵导致性能骤降一个反例x 1:10000; y []; for i 1:length(x) y(i) x(i)^2; end这段代码本身没有错但每次循环都要给y重新分配内存运行会特别慢。正确的写法是y zeros(size(x)); for i 1:length(x) y(i) x(i)^2; end更好的是直接向量化y x.^2;用tic和toc测一下你会发现向量化比循环快几个数量级。这不是鼓励初学者一开始就拒绝循环而是提醒你当数据量大了矩阵化思维才是MATLAB的看家本领。6.3 浮点数比较别用等号由于浮点数的二进制表示有误差A中某个数值即使看起来等于0.1实际存储可能是0.10000000000000001。因此判断矩阵中哪些元素等于某个特定小数时不建议用A 0.1而应该用tol 1e-8; A(abs(A - 0.1) tol) 0;这个技巧在做数值计算时非常重要尤其是在处理迭代法收敛判断、滤波器系数比较时。直接等号比较往往找不齐目标元素或者误判数值导致结果偏离预期。6.4 变量名与内置函数冲突矩阵基础知识虽然简单但有一个特别隐蔽的坑变量名会覆盖函数名。比如你定义一个变量叫zeros之后调用zeros(3,3)就会出错。因为MATLAB解析变量名的优先级高于函数。我的建议是永远不用内置函数名作为变量名比如不要用sum、max、mean、size。写代码时可以先运行which size检查某个名字是否被占用。还有一个容易忽略的点MATLAB对大小写敏感。A和a是两个不同的变量。在长脚本里大小写混乱很容易导致“Undefined function or variable”错误。统一驼峰或小写命名能减少这类问题。6.5 分号、清屏与脚本调试的细节命令窗口直接执行语句时如果想看到结果就不加分号如果想隐藏结果就加分号。在脚本编辑器中建议默认加避免中间过程输出刷屏。调试矩阵相关代码时我通常会这样操作在关键行前面去掉分号运行一次或者用disp打印size(A)也可以用whos查看所有变量的大小和类型这个命令比who更详细。如果发现某个变量维度不对可以用clear A单独清除它而不是动不动就clear all否则脚本里其他变量全没了前功尽弃。最后再分享一个小技巧在命令窗口输入doc size或者help reshape能直接打开官方文档里面有很多示例比网上搜到的二手答案靠谱得多。我当年学矩阵基础时就是靠“遇到不懂就doc”这个习惯把repmat、reshape、logical indexing这些概念真正用熟的。矩阵基础这块内容看似琐碎但它是后续所有MATLAB应用的地基哪怕你后面去做图像处理、数值分析、深度学习理解矩阵怎么存、怎么取、怎么算永远绕不开。

相关新闻

Android端WebRTC学习路线:从基础知识到工程实践的完整梳理

Android端WebRTC学习路线:从基础知识到工程实践的完整梳理

接触 WebRTC 大概有五六年时间了,早年在桌面上折腾浏览器端实时通信,后来转到 Android 越做越深。最近有不少朋友问我,想系统学 Android 端的 WebRTC,到底应该看什么资料、按什么顺序学、实际工程里有哪些坑。这篇就把我这些年的资…

2026/10/2 14:54:14 阅读更多 →
Hindsight实战:用会话回放定位真实用户性能瓶颈

Hindsight实战:用会话回放定位真实用户性能瓶颈

hindsight 这个词,英文里的本意是"后见之明、事后复盘"——就是事情发生之后,回过头去把当时的脉络看清楚。放在前端性能优化这个领域,这个词再合适不过了:我们做性能优化,最缺的恰恰不是"测一测当前页…

2026/10/2 14:54:14 阅读更多 →
ruoyi-vue-pro本地环境搭建全攻略与避坑指南

ruoyi-vue-pro本地环境搭建全攻略与避坑指南

先说结论:ruoyi-vue-pro 这套东西,是我见过“开箱即用度”最高的 Java 快速开发平台之一。但越完整的项目,本地跑起来的坑越多。你跟着网上那些零散的教程走,大概率会在数据库连接、Redis 缓存、前端依赖安装这几个环节卡住一两个…

2026/10/2 14:54:14 阅读更多 →

最新新闻

西电机器学习课设包:10个实验项目源码与避坑指南

西电机器学习课设包:10个实验项目源码与避坑指南

简介:这份资源是西安电子科技大学机器学习课程设计的完整实践包,面向刚接触机器学习、需要完成课程设计或期末大作业的学生。内容围绕10个实验项目展开,覆盖线性回归、逻辑回归、决策树、随机森林、支持向量机、聚类算法等核心主题&#xff0…

2026/10/2 15:28:34 阅读更多 →
Netty ChannelInitializer源码解析:pipeline初始化与粘包处理

Netty ChannelInitializer源码解析:pipeline初始化与粘包处理

ChannelInitializer在Netty里不算一个多复杂的类,但它的作用非常关键——它是pipeline初始化的真正入口,也是绝大多数业务handler被挂载进pipeline的起点。很多人看Netty源码时,从Bootstrap一路追到AbstractBootstrap的initAndRegister方法&a…

2026/10/2 15:28:34 阅读更多 →
大模型上下文与工具链搭建:RAG、记忆、API、MCP与鉴权审计实战

大模型上下文与工具链搭建:RAG、记忆、API、MCP与鉴权审计实战

1. 从标题拆解这套系统的真实骨架 1.1 为什么是"上下文工具链"而不是单纯的RAG 看到"大模型上下文与工具链搭建"这个说法,很多人第一反应就是"又一个RAG教程"。但把标题拆开看,RAG只是四个关键词里的一个,后面…

2026/10/2 15:28:34 阅读更多 →
Claude Code 入门教程:从环境准备到首次修改代码

Claude Code 入门教程:从环境准备到首次修改代码

作为一个在终端里折腾了十年的开发者,我现在写代码效率最高的场景已经不是“打开 IDE 一顿操作”,而是打开终端,敲一个命令,把 Claude Code 叫出来,然后用自然语言改代码。这不是让你偷懒,而是把“找文件、…

2026/10/2 15:28:34 阅读更多 →
Grok 4.6、DeepSeek V4、Qwen3.8 深度横评:用 TaoToken 统一 Key 跑通能力、成本与场景选型

Grok 4.6、DeepSeek V4、Qwen3.8 深度横评:用 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/2 15:28:34 阅读更多 →
C++模板元编程实战:编译期训练线性回归模型

C++模板元编程实战:编译期训练线性回归模型

把“模板编译期机器学习”这六个字放在一起,很多人第一反应是:这怕不是两个词拼错了?模板元编程是用来搞泛型编程的,机器学习是要跑在GPU和数据流上的,怎么能在编译期完成?C模板元编程确实有一个非常硬核的…

2026/10/2 15:27:33 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/2 10:36:31 阅读更多 →
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/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练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/2 6:09:11 阅读更多 →