MATLAB核心技巧:从入门到精通

1.数值 显示 格式

format style 设置

eg: pi format longE;

or

2.清除指令

clc 清除命令行窗口

clear 清除工作区

cls

3.搜索路径设置

path(path,'E:\ads\')

or

addpath

4.M文件

用户把要实现的命令写在一个以.m为扩展的文件中,然后由matlab系统进行解读,最后运行结果。

类型:

脚本:也可以自己写函数;

函数:函数名和文件名相同;

5.通用描述

general 命令

函数:rand(), sin(60)

工具箱

abs , sqrt, exp

help abs

分号;,不打印在命令行中

6.通用命令

常用:cls clf clear exit quit home echo type more cd dir load diary pack hold(图形保持

close

快捷键

\]向量和矩阵标识符 ![](https://i-blog.csdnimg.cn/direct/b0ca75f2781541e48e0c1df9024eb8b3.png) ## 二 ### 1.向量 ![](https://i-blog.csdnimg.cn/direct/bdd334459859485587112d80a507fae1.png) ![](https://i-blog.csdnimg.cn/direct/e0fa4cfad57a4a64a833ddfce6344920.png) 冒号表示 ![](https://i-blog.csdnimg.cn/direct/daba97c5214f49e686a305907f33a117.png) linspace(a1,an,n) n默认100 ,首元素尾元素 等分间距 logspace(a1,an,n) n默认50 算数运算 ![](https://i-blog.csdnimg.cn/direct/31be31ba7018411ba731eab47c6955f8.png) 点积和叉积 ![](https://i-blog.csdnimg.cn/direct/4a4974a27f6c449f98f63e267755e887.png) ![](https://i-blog.csdnimg.cn/direct/6660407080dd4021812d374cece19b0e.png) ![](https://i-blog.csdnimg.cn/direct/ec48586f62a34cfeb7d6aa67f3189325.png) ### 2.矩阵matrix ![](https://i-blog.csdnimg.cn/direct/48455e0349b44c2ab6a4c55a0be31f67.png) 特殊矩阵 ![](https://i-blog.csdnimg.cn/direct/a70b513e58b843e091a3238dc773d0f3.png) ones(3,3) or ones(3) zeros( ) eye() diag()对角 magic rand 0-1均匀分布 randn 高斯分布 ![](https://i-blog.csdnimg.cn/direct/a84d5e92ea324b1480a38a5b0ccc301f.png) ![](https://i-blog.csdnimg.cn/direct/be649c288e5c4f87ae45a6af0e364d3d.png) ![](https://i-blog.csdnimg.cn/direct/56fb568690bc4fb28dbe4ad5c7a2483d.png) ![](https://i-blog.csdnimg.cn/direct/cf8acd63c12740d0b463fdad68ae1112.png) ![](https://i-blog.csdnimg.cn/direct/4a675a29bd6247a6b7a7c096a65c8e7b.png) 稀疏矩阵 非零元素和行列索引来存,节省空间; 密度:![](https://i-blog.csdnimg.cn/direct/8bd672e579884f199318ed546d5d1179.png) 转换函数:满矩阵-稀疏矩阵 ![](https://i-blog.csdnimg.cn/direct/a7904335edce4a978c3d9f874a7081ce.png) ![](https://i-blog.csdnimg.cn/direct/8ac12f7bdf274375bd4fe69077535248.png) ![](https://i-blog.csdnimg.cn/direct/f0c093631cd94353aaeabaf78544d8ae.png) ![](https://i-blog.csdnimg.cn/direct/dbb84ab1323d41bcb77a8e75a3127482.png) ![](https://i-blog.csdnimg.cn/direct/b220ff359e8e41ee929b521c34aecb30.png) #### 结论 MATLAB 的稀疏矩阵是**按索引存储**的,采用的是列优先顺序下的压缩列存储(CSC)格式。只保存了非零元素及其所在的行列索引,从而实现了高效的内存利用和运算性能。 导入外部数据 load 多维数组 ![](https://i-blog.csdnimg.cn/direct/c983a2cea9104a10b0f10b2c08ac80df.png) ## 三 ### 1.数据类型 ![](https://i-blog.csdnimg.cn/direct/89ae017594ac4caf949b725a51974e91.png) isinteger(x) class(x) 双精度浮点(默认) ![](https://i-blog.csdnimg.cn/direct/bc58f2e239cf40f7996ea0066e8a88ff.png) ### 2.类型转换函数 复数:z = complex(x,y) z = complex(x) z = 12 + 6i; z = rand(2)\*2 ### 3.字符,结构体(C++) ![](https://i-blog.csdnimg.cn/direct/d772f87013494c2b8fd003eb716c13a3.png) ### 4.元胞数组 ![](https://i-blog.csdnimg.cn/direct/0dcacb23cc5c4c5aa632b16fbe8e0edf.png) ### 5.函数句柄 可作为参数传递给其他函数,C++中有相同概念函数指针或回调函数,执行时机和逻辑分离; ![](https://i-blog.csdnimg.cn/direct/7723f5e941534a8496fff87b109df278.png) ### 6.字符串 ![](https://i-blog.csdnimg.cn/direct/b01dfb4e5d054c9eb0e3458cf5b60d32.png) ![](https://i-blog.csdnimg.cn/direct/7d4d7d7571ed4d5986af43a7a0f4f5ba.png) ![](https://i-blog.csdnimg.cn/direct/262402875bd74895b5c2b7fd378b8e69.png) ## 四 ### 1.程序 M文件,扩展名.m。通过编写M文件可以实现各种复杂运算。 ![](https://i-blog.csdnimg.cn/direct/4ba7a98773224940a4354e1988afa757.png) eg: ![](https://i-blog.csdnimg.cn/direct/5274549cb28e4fccbbb7207112916ff7.png) 循环语句:for and while 前者有次数,后者没有,通过条件判断式来决定 条件语句:ifelse switch case ![](https://i-blog.csdnimg.cn/direct/95cff5e559e54b319ef54ac42613515c.png) ![](https://i-blog.csdnimg.cn/direct/51b9fc4b02f245ba9b73490117373205.png) continue return break 交互命令: echo ![](https://i-blog.csdnimg.cn/direct/2560909490474e78b2597e7811515e73.png)error keyboard![](https://i-blog.csdnimg.cn/direct/4dfa23752c6a40c7ba80b2b6b9df27ec.png) ### 2.调试 ![](https://i-blog.csdnimg.cn/direct/84eb4beee32749798bc5792821f345c5.png) ## 五 ### 矩阵运算 ![](https://i-blog.csdnimg.cn/direct/7c2e70f4ace749f2bdcc1b8e0f1afab3.png) 范数 ![](https://i-blog.csdnimg.cn/direct/3fc2e61715874394bbeb4090701b9688.png) det cond判断奇异性 rank trace 特征值和特征向量 ![](https://i-blog.csdnimg.cn/direct/35f6c787525a4d359d2a52b2606205f9.png) ![](https://i-blog.csdnimg.cn/direct/d89736ab5b654df88bb1f8a80a0bb117.png)矩阵空间夹角 ![](https://i-blog.csdnimg.cn/direct/c866f284ce6341c5a7a75be99b21895c.png) ### 矩阵分解 ![](https://i-blog.csdnimg.cn/direct/e995101b8d0d449c8d9d82c70de99380.png) #### 1.chol ![](https://i-blog.csdnimg.cn/direct/9b31bc69b96d4e68ae05074ed659b731.png) #### 2.LU ![](https://i-blog.csdnimg.cn/direct/2a5a7fb7c9b248a9a4d4dbb7f846f80c.png) #### 3.QR ![](https://i-blog.csdnimg.cn/direct/2fd8bf873f374042b3231b4c314cd788.png) #### 4.左右除: 为了方便记忆对哪个矩阵进行逆运算,规律如下: 在可逆形式下转换成逆矩阵,右除对右边矩阵逆,左除对左边矩阵逆。 1. C/B=C\*(inv(B)) (C右除B等于C乘以B的逆) 2. A\\C=inv(A)\*C (A左除C=A的逆乘以C) ![](https://i-blog.csdnimg.cn/direct/7ef79a52ab884c45811a8756d667f67a.png) ## 六 ### 1.可视化 ![](https://i-blog.csdnimg.cn/direct/524f43e1648d400da5f8347579806223.png) eg: ![](https://i-blog.csdnimg.cn/direct/87b71a02994b4565ae2b64b2c019038d.png) 步骤: ![](https://i-blog.csdnimg.cn/direct/5005a881024a45eaa6dc9f1fd6d2a018.png) ### 2.二维图形绘制 ![](https://i-blog.csdnimg.cn/direct/d6acbb492f624cb8ab32fcf2e61fe79c.png) 双坐标轴 ![](https://i-blog.csdnimg.cn/direct/a1e220da1b934410ae1f0666b73ef9f9.png) hold on 叠图 ![](https://i-blog.csdnimg.cn/direct/0c3dd44086804e379bfbd5ff41a64a25.png) hold off 子图 subplot(m,n,k) ![](https://i-blog.csdnimg.cn/direct/bd0acd93b1af4d14bf8b7791fc45538f.png) 3.三维图形 plot3 ![](https://i-blog.csdnimg.cn/direct/10d69161f89e40968f2544f75b17c3fd.png) ![](https://i-blog.csdnimg.cn/direct/752b86908e3b43068f738e2132f63bac.png) mesh 三维网格图 ![](https://i-blog.csdnimg.cn/direct/d88f0a6ac7cd45e7ba22be392ccad6d8.png) surf ![](https://i-blog.csdnimg.cn/direct/780232fbcf924887a81208a673d9ea34.png) ### 3.二维特殊图形 ![](https://i-blog.csdnimg.cn/direct/1b42f09cdb924840a5b4914c53b7f28f.png) 饼状图 ![](https://i-blog.csdnimg.cn/direct/0eb9f3b5c839442085102c719a31e52c.png) 阶梯图 ![](https://i-blog.csdnimg.cn/direct/9095295cefbf445ba015e3561334734c.png) 条形图 ![](https://i-blog.csdnimg.cn/direct/d6689569b5184c3ca7377faf2df5962f.png) 等高线 ![](https://i-blog.csdnimg.cn/direct/c51e29d11c5b4204b966f5beb1d59a98.png) errorbar ![](https://i-blog.csdnimg.cn/direct/eef23df145a643fb94e38844f630f847.png) ### 4.三维特殊图形函数 ![](https://i-blog.csdnimg.cn/direct/c2c463d6ab474086aaa1c8c683c0b978.png) ![](https://i-blog.csdnimg.cn/direct/d0e11fac37d74aa8ac516a3d3467524e.png) ### 5.四维 ![](https://i-blog.csdnimg.cn/direct/4f69493188394138b5204a4d8f85cd58.png) ## 七 ### 1.坐标轴和图形标注 ![](https://i-blog.csdnimg.cn/direct/95c7ad5bc7e345aa8aadc408c033afbe.png) ![](https://i-blog.csdnimg.cn/direct/89ac570053ba4c7cb3e75760752a308a.png) 标注: ![](https://i-blog.csdnimg.cn/direct/72162852f0ef484997daa8fe289e07ad.png) 图例标注:legend ![](https://i-blog.csdnimg.cn/direct/c59c4501fc0046618fcbc6c9581940bd.png) ![](https://i-blog.csdnimg.cn/direct/1f67f5f799374a68bf3c61d017d666cd.png) 取点:ginput ![](https://i-blog.csdnimg.cn/direct/8a1d1f425adc42e88d0f687d0a9a233e.png) ### 2.命令控制 ![](https://i-blog.csdnimg.cn/direct/9a29a7ed1a47417ea18c928335ea3631.png) ![](https://i-blog.csdnimg.cn/direct/146e254aeaca48d08b689dc352a1d9ce.png) 网格控制 ![](https://i-blog.csdnimg.cn/direct/a9f7ac3cb8b64dd297813c5611c4e231.png) ![](https://i-blog.csdnimg.cn/direct/2a2039c3fab043e7ba4c3b761923a0f0.png) ![](https://i-blog.csdnimg.cn/direct/98a75c75fee04c2a8da26e669e524983.png) view:观察点 ![](https://i-blog.csdnimg.cn/direct/642dd0375e40436f973d99284dbe4091.png) ![](https://i-blog.csdnimg.cn/direct/d025914d02844ea190723da942f63e66.png) ![](https://i-blog.csdnimg.cn/direct/4eba60dcf318426ab8e4d039ef442f5c.png) ### 3.颜色 ![](https://i-blog.csdnimg.cn/direct/464cbf30c01b4462b97c821cda9b6a63.png) ![](https://i-blog.csdnimg.cn/direct/fa639d5cb8234ba780e5780e6dbcbc7d.png) ![](https://i-blog.csdnimg.cn/direct/1062dae496da42b1bae4a77ff44cb111.png) ![](https://i-blog.csdnimg.cn/direct/8c888a1aded243d18692df4fb3f2a431.png) 增亮: ![](https://i-blog.csdnimg.cn/direct/8835adaf64d34f39924e76293ab0b9c8.png) 颜色标尺: ![](https://i-blog.csdnimg.cn/direct/d1df7e21ab8c4505bb8ac64a5d1b36c8.png) 背景色: ![](https://i-blog.csdnimg.cn/direct/541f0c73df754f399eeb8bfd5a2ec75f.png) 光照设置: ![](https://i-blog.csdnimg.cn/direct/d6fa8ae29308478a947229ef531e52a0.png) ### 4.图形窗口 创建: ![](https://i-blog.csdnimg.cn/direct/96fe4c5d6f104e5d8f89356d0320b6d6.png) get获得图形窗口属性; ![](https://i-blog.csdnimg.cn/direct/7629b83ad7574825a2d5dca231682a08.png) ![](https://i-blog.csdnimg.cn/direct/e73271122d534a1c83965f3d4340fcc4.png) ![](https://i-blog.csdnimg.cn/direct/99dace8fb1fd478ca867e746a9353568.png) 打印或输出: ![](https://i-blog.csdnimg.cn/direct/ff29a6162e7b4dba9737a6e2b0b373a3.png) ## 八 ### 1.数学函数-\>matlab语言 ![](https://i-blog.csdnimg.cn/direct/1df8713fc0934726b677a9d3f6c6681e.png) #### 三角函数: ![](https://i-blog.csdnimg.cn/direct/7ac6923781bc45319368cb8ff30e99f6.png) ![](https://i-blog.csdnimg.cn/direct/389fe95ef07a4c129aaa72eecf9bb159.png) ![](https://i-blog.csdnimg.cn/direct/269f35841523403081a81d15c3308620.png) #### 指数对数 #### ![](https://i-blog.csdnimg.cn/direct/59963d1d08bf49fc960caa97dad1bfba.png)复数 ![](https://i-blog.csdnimg.cn/direct/967cfdea084e47779384e388f96b0fc6.png) ![](https://i-blog.csdnimg.cn/direct/0994d65b0d324a7cb372f731d84d3141.png) #### 截断或求余 ![](https://i-blog.csdnimg.cn/direct/32c801e0ecc749caa28513d4899faccc.png) ### 2.特殊函数 ![](https://i-blog.csdnimg.cn/direct/c4eb7df64d4445ca8f75db2fca7d4512.png) ![](https://i-blog.csdnimg.cn/direct/ee3e9ef090c742578cfd0e42f960f2e1.png) ![](https://i-blog.csdnimg.cn/direct/b1e930002f12423cb777d2824bc62c57.png) #### 坐标变换函数: #### ![](https://i-blog.csdnimg.cn/direct/5e273abd95964bda94aa921b18c26602.png)数论函数: ![](https://i-blog.csdnimg.cn/direct/875a0f2e45d24162bb3e4f3831b00def.png) #### 素数 ![](https://i-blog.csdnimg.cn/direct/04bd292aa7104a2c9c83e166bab481ae.png) ## 九 ![](https://i-blog.csdnimg.cn/direct/e8a292bd0d5d45bf8f2708500f9c7d3c.png) ### 1.符号运算 ![](https://i-blog.csdnimg.cn/direct/a79ab34aba6843d48d882252600a2938.png) sym: ![](https://i-blog.csdnimg.cn/direct/61c0ebeb6a1f4aa88a778673eb61f391.png) syms: ![](https://i-blog.csdnimg.cn/direct/bf400ad391494a289681b2d38ad8eec6.png) class 对象类型 ![](https://i-blog.csdnimg.cn/direct/25d2c39f710e47379af4d7682f1945d4.png) 符号运算 ![](https://i-blog.csdnimg.cn/direct/92191461183e4df5a7fc114d03383264.png) ![](https://i-blog.csdnimg.cn/direct/bb540d397f1b4e768193d0f6c713bf7d.png) ![](https://i-blog.csdnimg.cn/direct/67d68bef9b7145ba94ef9dcbc8771e51.png) 化简: ![](https://i-blog.csdnimg.cn/direct/c866bbcc39524a5cb15a620fee6b5271.png) ![](https://i-blog.csdnimg.cn/direct/3049a671fe4e421e8e00b6dc02497cb9.png) #### 在 MATLAB 中,**符号对象(symbolic object)** 和 **普通数值(numeric value)** 的区别主要体现在**数据类型、计算方式、精度、用途**等方面。下面我分学术和工程两个角度给你梳理一下。 *** ** * ** *** #### 1. 数据类型不同 | 特性 | 符号对象 (`sym`) | 普通数值 (`double`, `single` 等) | |------|--------------------------|-----------------------------| | 数据类型 | 符号类型(Symbolic) | 浮点数类型(Numeric) | | 存储形式 | 存储的是数学表达式或符号常量,不是近似值 | 存储的是有限精度的二进制浮点数 | | 创建方式 | `syms x; f = sym('pi');` | `a = 3.1416;` | *** ** * ** *** #### 2. 计算方式不同 * **符号对象** * 按**符号推导**规则运算,不会做浮点近似化。 * 能进行代数化简、微分、积分、解方程等符号运算。 * 例如: syms x diff(sin(x)^2, x) % 结果是 2*sin(x)*cos(x) * **普通数值** * 按**数值计算**规则运算,采用 IEEE 754 双精度(或单精度)近似。 * 无法直接进行代数化简,结果通常是近似数。 * 例如: x = pi/3; diff(sin(x)^2, x) % 会报错,因为 x 只是数值 *** ** * ** *** #### 3. 精度与近似 * **符号对象** → 理论上**无限精度** (直到内存限制),保留 exact form,如 `pi`、`sqrt(2)`。 * **普通数值** → 有限精度(`double` 默认约 15\~16 位有效数字),存在舍入误差。 举例: sym(pi) - 4*atan(sym(1)) % 结果是 0(完全相等) pi - 4*atan(1) % 结果是 0(数值上接近,但可能不是精确 0) *** ** * ** *** #### 4. 用途上的区别 * **符号对象** * 符号微积分(`diff`、`int`) * 符号代数(`simplify`、`factor`) * 精确解析解(`solve`) * 高精度常数计算(配合 `vpa` 可指定位数) * **普通数值** * 数值仿真(ODE 数值解、FFT 等) * 工程数值计算(矩阵运算、统计分析等) * 实时计算与信号处理 *** ** * ** *** #### 5. 转换关系 * **数值 → 符号** a = 3.14; sym_a = sym(a); * **符号 → 数值** x = sym('pi'); double(x) % 转为 double 类型近似值 *** ** * ** *** #### 总结表 | 特性 | 符号对象 (sym) | 普通数值 (double/single) | |------|-------------|----------------------| | 精度 | 理论无限精度 | 有限(\~15 位) | | 运算方式 | 代数运算 | 浮点近似运算 | | 用途 | 推导、符号解、精确计算 | 数值计算、仿真 | | 内存占用 | 较大 | 较小 | | 速度 | 慢 | 快 | *** ** * ** *** MATLAB 之所以要引入 **符号对象(Symbolic Object)** ,本质上是因为**数值计算** 和**数学推导**的需求是两类完全不同的任务,而普通浮点数无法满足后一类任务的精确性与表达能力。 我分几个层次解释一下\*\*"为什么需要符号对象"\*\*。 *** ** * ** *** #### 1. 解决浮点数无法表达精确数学对象的问题 普通数值(`double`、`single`)存储的是**近似值**,而许多数学对象是无法用有限二进制小数精确表示的,比如: * π\\pi、ee、2\\sqrt{2} * 分数 13\\frac{1}{3} * 无理数、代数式 浮点数在这些情况下会引入舍入误差,而符号对象则保留**精确的数学形式**: sym(pi) % 保留为 π,不是 3.1416... *** ** * ** *** #### 2. 支持解析计算(Analytical Computation) 有些任务必须基于**公式推导**而不是近似数值: * 符号微分(得出通用公式,而非某一点的导数) * 符号积分(求出积分解析式) * 符号解方程(求变量的精确表达式) * 代数化简(消去公共因子、展开或因式分解) 例子: syms x diff(sin(x)^2, x) % 结果是 2*sin(x)*cos(x),而不是数值 这种能力在通信理论推导、信号公式变换等科研任务中很重要。 *** ** * ** *** #### 3. 实现高精度或任意精度计算 浮点数精度有限(`double` 约 15\~16 位有效数字)。 当需要极高精度(如大数计算、误差敏感问题)时,浮点运算会累积误差。 符号对象配合 `vpa`(Variable Precision Arithmetic)可以按需求设置精度: vpa(pi, 50) % 计算 π 的 50 位有效数字 *** ** * ** *** #### 4. 支持数值与推导的混合工作流 在科研和工程计算中,经常需要先推导公式,再数值仿真。 * 推导阶段:用符号对象得到通用解析公式 * 仿真阶段:将符号公式转成数值函数,高速计算 这种模式可以减少人工推导错误,并在参数变化时自动更新公式。 例如 MU-MIMO 信道容量公式推导,可以用符号对象自动完成矩阵求导、迹运算等,再转为数值形式计算吞吐量。 *** ** * ** *** #### 5. 工程意义 * 避免手工推导的繁琐与易错性(符号引擎自动化) * 保证结果的数学严谨性(不会因为舍入误差而得到错误结论) * 提供可复用的解析模型(直接嵌入到数值计算中) *** ** * ** *** #### 总结一句 **符号对象的存在,是为了让 MATLAB 不仅能"算数",还能"做数学"** 。 它让 MATLAB 既能做高速的数值计算(仿真),也能做精确的符号推导(理论分析),两者结合才适用于科研和高精度工程应用。 *** ** * ** *** 对,你的理解方向是对的,但我帮你精确化一下:**符号变量并不是简单的"把数值换成变量"** ,而是**把数值、变量甚至表达式都作为数学符号来处理**,从而保留它们的精确结构。 *** ** * ** *** #### 1. 普通数值 vs 符号变量的本质区别 * **普通数值** * 只存储具体的数(例如 3.1416),MATLAB 只能对它做数值运算。 * 计算结果是数值,没有"通用性"。 * **符号变量 / 符号对象** * 存储的是一个数学符号(例如 xx、π\\pi、2\\sqrt{2}),可以在运算中保持符号形式,不直接化成数值。 * 能保留变量之间的关系,形成通用公式。 * 计算结果可以是另一个公式,而不是一个单一的数。 *** ** * ** *** #### 2. 例子直观比较 #### 数值计算 x = pi/3; % 数值 y = sin(x)^2; % 已经是数值 diff(y, x) % ❌ 报错,因为 y 是数值,不是表达式 #### 符号计算 syms x y = sin(x)^2; % 符号表达式 dy = diff(y, x) % 结果: 2*sin(x)*cos(x) 这里 `x` 就是一个符号变量,不是具体数值,所以 MATLAB 可以对它做微分、积分、化简等操作。 *** ** * ** *** #### 3. 不只是变量,还能是"精确数" 符号对象还可以表示常数的精确形式: sym(1/3) % 保留为 1/3 1/3 % double 结果是 0.3333... 这意味着符号对象不仅仅是 "未知量 xx",也可以是一个**精确常数** 或一个**代数式**。 *** ** * ** *** #### 4. 总结你的那句话 > 符号变量并非简单地将数值替换为变量,而是以符号形式存储数学对象(变量、常数或表达式),使其在运算中保留解析结构,从而能够生成通用公式,而不仅是针对特定数值的结果。 *** ** * ** *** [MATLAB符号变量的创建和简单运算-CSDN博客](https://blog.csdn.net/weixin_44795839/article/details/107166791 "MATLAB符号变量的创建和简单运算-CSDN博客") ### 2.符号表达式 ![](https://i-blog.csdnimg.cn/direct/61471fd3160e4af581c5a2fece54922d.png) 作为一个公式; ![](https://i-blog.csdnimg.cn/direct/b258b1daf3e94c2aad30ea6f9cc85bdb.png) #### 极限: ![](https://i-blog.csdnimg.cn/direct/222f259e07a440efb945f8f24448c47d.png) #### 求和: ![](https://i-blog.csdnimg.cn/direct/2b818e41ccbe44eb97f69538a6d8948b.png) #### 泰勒: ![](https://i-blog.csdnimg.cn/direct/d6bf0a51bd5d407e83380d08bb5fc9d8.png) #### 积分: ![](https://i-blog.csdnimg.cn/direct/8397844b4198450ea0ec13a3e14a1df0.png) ![](https://i-blog.csdnimg.cn/direct/96b6879c48234ccfb1827fe0c66a1955.png) #### 傅里叶变换: ![](https://i-blog.csdnimg.cn/direct/4941329d04794277b7b890d45f43a358.png) eg:阶跃函数 ![](https://i-blog.csdnimg.cn/direct/a02af1171a744e1ab07f761b2219cba0.png) #### 拉普拉斯变换: ![](https://i-blog.csdnimg.cn/direct/3c1e0d735aed47bd9f01fa3caaddc84e.png) eg: ![](https://i-blog.csdnimg.cn/direct/4e8451d7fd0b4d079455898a815a6bfd.png) #### Z变换: ![](https://i-blog.csdnimg.cn/direct/54d4b1b86ace447896d6b0ab4986242d.png) eg: ![](https://i-blog.csdnimg.cn/direct/758d4c567c85469b8c3684af09fed43b.png) ### 3.符号矩阵运算 ![](https://i-blog.csdnimg.cn/direct/f831a59a62014a788f5073670480191a.png) ![](https://i-blog.csdnimg.cn/direct/922f7547e2ed453ba924bc0b7ad02d7e.png) ![](https://i-blog.csdnimg.cn/direct/b3042da775214e928cd9c35668627968.png) ![](https://i-blog.csdnimg.cn/direct/250f145d7cd1480583a7e5ba212a769d.png) ### 4.符号方程求解 ![](https://i-blog.csdnimg.cn/direct/45b20f5e29144958b5f45bb8615e1a97.png) ### 5.可视化数学分析窗口 ![](https://i-blog.csdnimg.cn/direct/a9ba32dba9b041fdbcfd66aaeaf1639e.png) #### ![](https://i-blog.csdnimg.cn/direct/eb55ad0b95e848e78cabd528e066c877.png)泰勒级数分析: ![](https://i-blog.csdnimg.cn/direct/f69e3701645c42b5bbf18c6c35e9685b.png) ### 总结 是的,你现在已经抓到符号对象的核心特性了。 更精确地说,**符号对象可以在两种"模式"下使用**: *** ** * ** *** #### 1. 作为"表达式"运算(符号模式) * 所有变量、矩阵、公式保持符号形式,不转成具体数值。 * 运算结果依旧是**另一个公式**(而不是数)。 * 常见用途:推导公式、化简表达式、符号微分/积分、符号解方程等。 例子: syms x y f = sin(x)^2 + y^2; % 符号表达式 dfdx = diff(f, x) % 结果是 2*sin(x)*cos(x) *** ** * ** *** #### 2. 对符号赋值求数值(数值模式) * 可以用 `subs` 将符号变量替换成具体值,再用 `double` 转换为数值。 * 常见用途:公式推导完成后,用特定参数计算结果。 例子: syms x y f = sin(x)^2 + y^2; f_sub = subs(f, [x y], [pi/3 2]); % 用具体值替换符号 num_result = double(f_sub) % 转成 double 类型数值 *** ** * ** *** #### 3. 符号矩阵同理 * **推导阶段**:符号矩阵保留精确结构,可做代数运算(行列式、逆、迹等)。 * **计算阶段**:赋值并数值化求具体结果。 例子: syms a b c d A = [a b; c d]; det_A = det(A) % 结果是 a*d - b*c (公式) det_num = double(subs(det_A, [a b c d], [1 2 3 4])) % 结果是 -2 *** ** * ** *** #### ✅ **总结** 你完全可以先用符号对象推导出通用表达式(保持解析精度),然后在需要时给符号变量赋值求数值。 这种"先符号推导 → 再数值计算"的模式特别适合**通信系统公式推导 + 仿真**这类科研任务,因为能避免手算公式的易错性,又能在仿真中复用公式。 *** ** * ** *** ## 十 数值计算: ![](https://i-blog.csdnimg.cn/direct/1cfcab08a3ab4b229dac3e22a0a304e5.png) ### 求解方案: ![](https://i-blog.csdnimg.cn/direct/8d8bc05d076f42dc9c14e59ff34978fb.png) 高斯: ![](https://i-blog.csdnimg.cn/direct/5b4fb04719a24e6781709bb3a0f7b913.png) 迭代法:对高阶 ![](https://i-blog.csdnimg.cn/direct/e34bc577d57340ff918cba2264aaf5f0.png) ![](https://i-blog.csdnimg.cn/direct/f7c300940cf04291a754fc70bde9feda.png) ![](https://i-blog.csdnimg.cn/direct/add6d60d049e4af381bb859ebae1d8f5.png) ### 插值: ![](https://i-blog.csdnimg.cn/direct/ba0f9ab6326846569d82234d5eb0d845.png) ![](https://i-blog.csdnimg.cn/direct/fb2b97a8fc0b496a84aee86dbce88cd0.png) 插值(**Interpolation** )在数学和信号处理里,指的是**已知一组离散数据点,通过一定方法推算这些点之间未知位置的值** 。 它的本质就是------**用一个连续函数去"穿过"这些已知点,然后用它估计中间点**。 *** ** * ** *** #### 1. 插值的基本概念 假设你知道某函数在 x0,x1,...,xnx_0, x_1, \\dots, x_n 处的值 y0,y1,...,yny_0, y_1, \\dots, y_n, 插值的目标就是**构造一个函数 P(x)P(x)**,使得: P(xi)=yi,i=0,1,...,nP(x_i) = y_i, \\quad i=0,1,\\dots,n 并用 P(x)P(x) 来估算这些已知点之间的任意位置的值。 *** ** * ** *** #### 2. 插值 vs 拟合 * **插值** :要求插值函数**严格通过所有已知数据点**,没有偏差。 * **拟合**:允许拟合曲线与数据点有一定误差,更关注整体趋势(比如最小二乘法拟合)。 *** ** * ** *** #### 3. 常见插值方法 | 方法 | 特点 | 举例 | |-----------------------------|--------------------------|-------------------------------| | **线性插值** (Linear) | 相邻两点之间用直线连接,简单快速 | `interp1(x, y, xq, 'linear')` | | **多项式插值** (Polynomial) | 用高次多项式穿过所有点 | 拉格朗日插值、多项式插值公式 | | **分段三次样条插值** (Cubic Spline) | 分段三次多项式,保证一阶、二阶导数连续,曲线平滑 | `interp1(x, y, xq, 'spline')` | | **二维/多维插值** | 适用于二维/三维数据 | `interp2`、`interpn` | | **傅里叶插值** | 用周期信号的频域展开做插值 | 信号处理中的带限插值 | *** ** * ** *** #### 4. MATLAB 中的插值示例 x = [0 1 2 3]; y = [0 1 0 1]; xq = 0:0.1:3; % 查询点 y_linear = interp1(x, y, xq, 'linear'); % 线性插值 y_spline = interp1(x, y, xq, 'spline'); % 样条插值 plot(x, y, 'o', xq, y_linear, '-', xq, y_spline, '--'); legend('原始点', '线性插值', '样条插值'); *** ** * ** *** #### 5. 工程与科研中的意义 * **信号处理**:将离散采样信号恢复到连续时间(带限插值)。 * **通信系统**:定时同步、信道估计中利用插值获得未采样点的信道响应。 * **数值计算**:在已知离散解的情况下估算中间值(如有限元分析)。 * **图像处理**:图像缩放(最近邻插值、双线性插值、双三次插值)。 *** ** * ** *** 📌 一句话总结: > 插值是"已知几个点,填补中间的空白"的过程,本质上是用一个连续函数通过这些点,然后用它预测未知点的值。 *** ** * ** *** ![](https://i-blog.csdnimg.cn/direct/a6d91b1924684343b6dc5dcc008b6e95.png) 拟合: ![](https://i-blog.csdnimg.cn/direct/969bbacff73f4af29ce005271979bbc8.png) `polyfit` 和 `polyval` 是 MATLAB 里一对常用的**多项式拟合 + 计算工具**,它们经常配合使用,但作用不同: *** ** * ** *** #### 1. `polyfit` ------ 求多项式系数(拟合阶段) **作用** :给定一组数据点,找到一个**指定阶数的多项式**,使它在最小二乘意义下尽量接近这些数据。 **语法**: p = polyfit(x, y, n) * `x`、`y`:数据点(长度相同的向量) * `n`:拟合多项式的阶数 * `p`:返回一个行向量,包含从高次项到常数项的系数 例子: x = [1 2 3 4]; y = [2.2 2.8 3.6 4.5]; p = polyfit(x, y, 1) % 一阶拟合(直线) % p 可能返回 [0.77 1.45],对应 0.77*x + 1.45 *** ** * ** *** #### 2. `polyval` ------ 计算多项式值(预测阶段) **作用**:根据多项式系数,计算多项式在某些点的值。 **语法**: y_fit = polyval(p, xq) * `p`:由 `polyfit` 返回的系数向量 * `xq`:要计算的自变量值(可为标量、向量或矩阵) * `y_fit`:对应的多项式值 例子: xq = 1:0.5:4; % 查询点 yq = polyval(p, xq) % 根据拟合多项式预测 *** ** * ** *** #### 3. `polyfit` + `polyval` 组合使用示例 % 原始数据 x = [1 2 3 4]; y = [2.2 2.8 3.6 4.5]; % 用二阶多项式拟合 p = polyfit(x, y, 2); % 生成更密的 x 值进行预测 xq = linspace(1, 4, 100); yq = polyval(p, xq); % 绘图 plot(x, y, 'o', xq, yq, '-'); legend('原始数据', '二阶拟合曲线'); *** ** * ** *** #### 4. 和插值的区别 * **插值** :要求曲线**经过所有原始点**(误差为 0)。 * **`polyfit` 拟合**:允许曲线不经过所有点,目标是最小化总体误差(最小二乘法)。 * 多项式插值也能用 `polyfit` 实现,但拟合阶数要等于数据点数减 1(容易震荡)。 *** ** * ** *** ✅ **总结** * **`polyfit`**:求多项式系数(拟合/插值) * **`polyval`**:用系数计算多项式值(预测/绘制) * 常用组合: **先 `polyfit` 找系数 → 再 `polyval` 画曲线或求值** *** ** * ** *** 如果你需要,我可以帮你画一张\*\*"polyfit vs 插值"对比图\*\*,让你直观看到同一组点用线性拟合、二次拟合、样条插值的区别。这样你在科研(比如 MU-MIMO 信道曲线建模)时能快速判断用哪种方法。

相关推荐
带只拖鞋去流浪17 分钟前
Java文件读写(IO、NIO)
java·开发语言·nio
板鸭〈小号〉1 小时前
线程安全的单例模式,STL和智能指针
开发语言·c++·单例模式
小伟的技术日记1 小时前
MATLAB下载教程MATLAB R2025a 保姆级安装步骤(附安装包)
开发语言·其他·数学建模·matlab
阿狗哲哲1 小时前
Java选手如何看待Golang
java·开发语言·golang
测试开发技术2 小时前
软件测试中,pytest 运行完成后,如何自动发送邮件?
开发语言·python·pytest·接口测试·面试题
曹牧2 小时前
C#:dnSpy
开发语言·c#
软件算法开发2 小时前
基于遗传优化的稀疏线阵最优排布算法matlab仿真
matlab·遗传优化·稀疏线阵·最优排布
xzkyd outpaper3 小时前
Kotlin 协程线程切换机制详解
android·开发语言·kotlin
啊森要自信3 小时前
【QT】常⽤控件详解(六)多元素控件 QListWidget && Table Widget && Tree Widget
c语言·开发语言·c++·qt
屁股割了还要学4 小时前
【数据结构入门】栈和队列
c语言·开发语言·数据结构·学习·算法·青少年编程