SUNKAIS OS · READ ONLY

Jarvis

登录后,可以询问自己的任务、项目和记录。

登录后使用
Sun KaisPersonal Research Institute · 私人研究机构

Mathematics · Computational Science · Engineering · Personal Knowledge Systems

更多
SUNKAIS · PERSONAL OS

搜索全站功能

选择 前往

LEVEL 5 COMPUTATION · MATLAB MEMORY WORKBENCH

把工程计算变成可回查的思维回路

从一行矩阵运算到可复现的 Simulink 工程:按“意图”寻找命令,按“问题”唤回方法,并把每一次计算都连回假设、单位、误差与验证。

/ 聚焦搜索 Esc 清空 关键词不必完整

MODULES
8
知识模块
COMMANDS
32
高频命令
KEYWORDS
80
检索锚点

KNOWLEDGE ATLAS / 意图驱动速查

从问题定位到可运行范式

收藏保存在当前设备;搜索会匹配标题、用途、命令和回忆锚点。

显示全部 8 个主题。

ML-01 · Language & Workspace

语言基础与工作区

先分清脚本、函数和 Live Script,再控制变量、路径、类型与调试断点。

whos / class / size确认变量类型、形状与内存占用
help / doc / lookfor按名称或意图回查官方帮助
arguments在函数入口声明类型、尺寸和默认值
readtable / writetable用表格变量名保留数据语义
RUNNABLE PATTERN
function stats = summarizeSignal(x, opts)
arguments
    x (:,1) double {mustBeFinite}
    opts.RemoveMissing (1,1) logical = true
end
if opts.RemoveMissing
    x = rmmissing(x);
end
stats = table(mean(x), std(x), min(x), max(x), ...
    'VariableNames', ["Mean","Std","Min","Max"]);
end
三条回忆锚点
  • 脚本共享基础工作区;函数拥有独立工作区。
  • 先用 size/class 检查输入,再怀疑算法。
  • 可复用代码优先写成带 arguments 块的函数。
ML-02 · Matrices & Linear Algebra

矩阵、索引与线性代数

MATLAB 的第一语言是数组;维度、隐式扩展和矩阵/逐元素运算符必须明确。

A \ b求解线性方程,通常不要显式计算 inv(A)
.* ./ .^逐元素乘、除、幂;与 * / ^ 区分
eig / svd / qr特征分解、奇异值分解与 QR 分解
sparse / nnz构造稀疏矩阵并检查非零元素数
RUNNABLE PATTERN
A = [4 -1 0; -1 4 -1; 0 -1 3];
b = [15; 10; 10];
x = A \ b;                 % 稳定求解 Ax = b
relativeResidual = norm(A*x-b) / norm(b);
[U,S,V] = svd(A, "econ"); % 检查秩与条件性
numericalRank = rank(A);
三条回忆锚点
  • A(i,j) 是位置索引,A(mask) 是逻辑筛选。
  • 转置向量用 .' 避免复数共轭;共轭转置才用单引号。
  • 方程求解优先反斜杠,病态问题同时检查 cond 或 rcond。
ML-03 · Plotting & Visualization

绘图与数据可视化

从 tiledlayout 建立可复用图版,用句柄控制坐标轴、图例、色彩与导出质量。

tiledlayout / nexttile用稳定布局替代 subplot 拼接
plot / scatter / surf绘制曲线、散点和三维曲面
xline / yline / annotation标注阈值、事件与解释信息
exportgraphics按目标分辨率导出论文级图片
RUNNABLE PATTERN
t = linspace(0, 4*pi, 800);
y = exp(-0.12*t).*sin(2*t);
tl = tiledlayout(2,1, "TileSpacing","compact");
nexttile; plot(t,y, "LineWidth",1.6); yline(0); grid on
title("Damped response"); ylabel("Amplitude")
nexttile; semilogy(t, abs(y)+eps); grid on
xlabel("Time / s"); ylabel("|y|")
exportgraphics(tl, "response.png", "Resolution",300);
三条回忆锚点
  • 先画数据,再设置轴、单位、图例,最后统一导出。
  • 保留图形/坐标轴句柄,避免依赖当前对象 gcf/gca。
  • 颜色之外还要用线型和标记编码,保证可访问性。
ML-04 · Symbolic Math

符号计算与公式验证

用符号工具推导、化简和验证边界,再把结果转换成可执行的数值函数。

syms / assume声明符号变量和物理取值条件
diff / int / limit求导、积分与极限
solve / vpasolve精确求解或指定初值数值求根
matlabFunction把符号表达式编译成数值函数句柄
REQUIRES · SYMBOLIC MATH TOOLBOX
syms x
syms a positive
f = exp(-a*x^2);
area = int(f, x, -inf, inf);
check = simplify(area - sqrt(sym(pi)/a));
df = diff(f, x);
fNumeric = matlabFunction(f, "Vars", {x,a});
y = fNumeric(linspace(-2,2,101), 1.5);
三条回忆锚点
  • 符号结果依赖假设;用 assume 明确正数、实数等条件。
  • solve 给解析解,vpasolve 给指定区间或初值附近的数值解。
  • 进入循环或大数据前,先用 matlabFunction 转成数值函数。
ML-05 · Numerical Methods

数值方法与优化

把误差、容差、初值和收敛状态一起保存;数值答案必须能够解释精度来源。

fzero / roots求非线性函数零点或多项式根
integral / trapz函数自适应积分或采样数据积分
interp1 / griddedInterpolant一维插值与可复用网格插值器
fminsearch / fmincon无约束或带约束目标优化
RUNNABLE PATTERN
t = linspace(0,10,60)';
y = 2.4*exp(-0.35*t) + 0.03*sin(4*t); % 示例观测
model = @(p,x) p(1)*exp(-p(2)*x);
loss = @(p) sum((model(p,t)-y).^2);
p0 = [max(y), 0.1];
options = optimset("Display","off", "TolX",1e-9);
[pBest, sse, exitflag, output] = fminsearch(loss,p0,options);
assert(exitflag > 0, "优化未正常收敛");
三条回忆锚点
  • 数值积分对象是函数时用 integral,已有离散样本时用 trapz。
  • 优化结果必须连同 exitflag、output 和初值一起检查。
  • 用尺度归一化、误差曲线和独立数据验证拟合。
ML-06 · ODE / PDE / Dynamics

ODE、PDE 与动态系统

先写状态、参数、初值和事件,再选择刚性/非刚性求解器并验证守恒量。

ode45 / ode113非刚性常微分方程的通用与高精度求解
ode15s / ode23t刚性系统或隐式动力学求解
odeset / Events设置容差、事件终止与输出函数
pdepe / solvepde一维 PDE 或有限元 PDE 工作流
RUNNABLE PATTERN
g = 9.81; L = 0.8; damping = 0.08;
rhs = @(t,y) [y(2); -damping*y(2)-g/L*sin(y(1))];
opts = odeset("RelTol",1e-7, "AbsTol",1e-9);
tspan = [0 12]; y0 = [pi/4; 0];
[t,y] = ode45(rhs, tspan, y0, opts);
energy = 0.5*(L*y(:,2)).^2 + g*L*(1-cos(y(:,1)));
plot(t, y(:,1)); grid on
三条回忆锚点
  • 状态向量每一项都要注明单位和物理意义。
  • 先用 ode45;步长异常小或系统有快慢尺度时检查刚性并尝试 ode15s。
  • 不能只看曲线像不像,还要查守恒量、残差和步长敏感性。
ML-08 · Engineering Workflow

工程工作流与性能

用项目、测试、性能分析和批量运行,把一次可用的脚本升级成可复现交付物。

openProject / currentProject固定项目根目录、启动任务与依赖
runtests / matlab.unittest自动执行回归测试并输出诊断
profile / timeit定位瓶颈并稳定测量函数耗时
parfor / batch并行循环或后台批处理长任务
PROJECT TEMPLATE · REQUIRES LOCAL FILES
project = openProject(pwd);
cleanup = onCleanup(@() close(project));
results = runtests("tests", "IncludeSubfolders",true);
assertSuccess(results);
f = @() runExperiment("config/baseline.json");
elapsed = timeit(f);
fprintf("Baseline runtime: %.3f s\n", elapsed);
三条回忆锚点
  • 先预分配、减少数据复制和做算法改进,再考虑 parfor。
  • 随机实验保存 rng 种子、输入配置、MATLAB/工具箱版本。
  • 测试数值结果时使用相对/绝对容差,不直接比较浮点数相等。

PRIVATE CODE VAULT / 私人代码仓库

M 文件、伪代码与版本仓库

直接粘贴或从本机导入纯文本 .m 文件;源码、独立伪代码、运行说明、标签和每次修改前的历史快照会一起留在登录后的私人空间。

TEXT ONLYRLS PRIVATENO EXECUTION
这里只归档,不运行代码。支持导入与下载纯文本源码;`.mlx`、`.xlsx`、`.accdb` 等二进制容器不会入库。密码、Token、私钥等秘密也会被拒绝,请改用环境变量。
PRIVATE SESSION REQUIRED

登录后打开你的私人仓库

游客只看到这个说明,不会收到、缓存或渲染任何私人源码。

安全登录

VECTOR BUILDER / 向量构造器

把采样意图变成 MATLAB 表达式

输入支持普通小数、科学计数、分数与 pi,例如 -1/22*pi。点数会自动归整为 2–500 的整数。

linspace 包含起点和终点,适合绘图和等点数采样。

MATLAB CODE
linspace(0, 2*pi, 101)

预览:0, 0.0628, 0.1257, …, 6.1575, 6.2204, 6.2832

已生成 101 个等距采样点。

DEBUG ROUTER / 症状导向排查

先定位错误层级,再改代码

DIMENSION

数组维度不一致

打印 sizeclass;检查行/列向量、隐式扩展以及 *.*

NUMERICS

结果是 NaN / Inf

isfinite 定位首个异常;检查除零、定义域、单位尺度和初始条件。

CONVERGENCE

求解器不收敛

检查初值、约束和残差;记录 exitflag;缩放变量并尝试多个初始点。

PERFORMANCE

运行速度太慢

先用 profile 找热点;预分配、批量运算、减少复制,最后再并行化。

SUPPORT NETWORK / 支持体系

资料从哪里查,问题怎样继续推进

优先核对官方文档和版本,再带着最小复现进入社区;安装包只走产品官方入口。

FIRST RESPONSE / 首轮排查

不要盲试:保存症状、环境和最小样本

01

命令不存在或工具箱缺失

  • 运行 ver 与 license("test", feature)
  • 用 which -all 检查同名函数遮蔽
  • 对照当前版本文档的 Introduced in

下一步:确认许可后用 Add-On Explorer 安装;不要从不明站点复制工具箱文件。

02

脚本在另一台电脑不能运行

  • 检查 pwd、path 与绝对路径
  • 确认输入文件和工具箱版本
  • 从空白会话运行入口函数

下一步:改用 projectroot、fullfile 和项目启动任务管理路径。

03

结果或图形与预期不符

  • 记录 size、class、单位和缺失值
  • 固定 rng 并保存输入样本
  • 用极限值或独立实现交叉验证

下一步:制作最小可复现实验,再到 MATLAB Answers 提问。

ENGINEERING HANDOFF / 工程交付

离开电脑前的八项检查

目标不是“这次跑通”,而是三个月后仍能说明它为何正确。