Mat (C) — 打印工具与便捷包装¶
概述¶
tiny_mat.h 在重构后的 TinyMath 中服务于两个目的:
- 打印工具 — 将矩阵以调试格式输出到串口
- 便捷头文件 — 包含所有子模块以保持向后兼容
头文件: #include "tiny_mat.h"
架构¶
自从将原始的巨型 tiny_mat.c(1920 行)拆分为专用子模块后,tiny_mat.h 现在是一个 薄包装:
tiny_mat.h
├── #include "tiny_linalg.h" → 逐元素运算
├── #include "tiny_cfloat.h" → 复数运算
├── #include "tiny_decomp.h" → 矩阵分解
├── #include "tiny_eigen.h" → 特征值计算
├── #include "tiny_modal.h" → 模态分析
└── #include "tiny_iterative.h" → Krylov 方法和 RSVD
(加上 print_matrix 声明)
向后兼容
使用 #include "tiny_mat.h" 的现有代码无需更改即可继续工作——所有函数通过子模块包含重新导出。
打印函数¶
打印连续矩阵(无 padding,行优先)。
| 参数 | 说明 |
|---|---|
name | 矩阵前打印的标签 |
mat | 行优先矩阵数据 |
rows | 行数 |
cols | 列数 |
输出:
平台支持¶
两个函数均使用 <stdio.h> 的 printf()——无平台特定的分发。
使用示例¶
#include "tiny_mat.h"
// 打印 2×3 矩阵
float A[6] = {1, 2, 3, 4, 5, 6};
print_matrix("A", A, 2, 3);
// 带 padding 信息打印相同矩阵
print_matrix_padded("A (padded)", A, 2, 3, 3); // step = cols(无 padding)
// 所有子模块函数也可用:
tiny_cfloat_t z = tiny_cf(1.0f, 2.0f);
相关页面¶
有关详细的函数文档,请参阅专用子模块页面:
| 模块 | 页面 |
|---|---|
| 向量运算 | VECTOR API |
| 基础线性代数 | LINALG API |
| 复数运算 | CFLOAT API |
| 矩阵分解 | DECOMP API |
| 特征值与模态 | EIGEN API |
| 迭代方法 | ITERATIVE API |