MATLAB 字符串完全指南:创建、拼接、元胞数组与常用函数
MATLAB 中字符串本质为字符数组。创建简单:
my_string = 'Tutorials Point'
用 whos 查看:1×16 char,占 32 字节。
可用 uint8/uint16 转 ASCII 码,char 还原:
my_string = 'Tutorial''s Point'; str_ascii = uint8(my_string) char(str_ascii) str_16bit = uint16(my_string) char(str_16bit)
矩形字符数组
存储多行文本需矩形字符数组(各行等长)。两种垂直拼接方式:
- [] 加分号,需手动补空格对齐
- char 函数自动补齐尾部空格
doc_profile = ['Zara Ali '; 'Sr. Surgeon '; 'R N Tagore Cardiology Research Center']
doc_profile = char('Zara Ali', 'Sr. Surgeon', 'RN Tagore Cardiology Research Center')
水平拼接:
- [] 配合逗号/空格,保留尾部空格
- strcat 自动去除尾部空格
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore...'; profile = [name ', ' position ', ' worksAt] profile = strcat(name, ', ', position, ', ', worksAt)
转元胞数组存储变长字符串
cellstr 将字符数组转元胞数组,灵活存储不同长度字符串:
profile = char(name, position, worksAt); profile = cellstr(profile); disp(profile)
{ [1,1]=Zara Ali [2,1]=Sr. Surgeon [3,1]=R N Tagore... }
字符串函数速查表
| 存储与合并 | |
|---|---|
| blanks | 生成空白字符串 |
| cellstr | 字符数组转元胞数组 |
| char | 转字符数组 |
| iscellstr | 判断是否为字符串元胞数组 |
| ischar | 判断是否为字符数组 |
| sprintf | 格式化数据为字符串 |
| strcat | 水平拼接字符串 |
| strjoin | 元胞数组字符串连接 |
| 查找与替换 | |
| isletter | 判断字母字符 |
| isspace | 判断空白字符 |
| isstrprop | 判断字符串类别 |
| sscanf | 从字符串读取格式化数据 |
| strfind | 查找子串 |
| strrep | 查找并替换子串 |
| strsplit | 按分隔符分割字符串 |
| strtok | 提取字符串片段 |
| validatestring | 验证字符串有效性 |
| symvar | 提取符号变量 |
| regexp | 正则匹配(区分大小写) |
| regexpi | 正则匹配(忽略大小写) |
| regexprep | 正则替换 |
| regexptranslate | 转义正则字符 |
| 比较 | |
| strcmp | 比较(区分大小写) |
| strcmpi | 比较(忽略大小写) |
| strncmp | 比较前 n 字符(区分大小写) |
| strncmpi | 比较前 n 字符(忽略大小写) |
| 大小写与空白处理 | |
| deblank | 去除尾部空格 |
| strtrim | 去除首尾空白 |
| lower | 转小写 |
| upper | 转大写 |
| strjust | 字符数组对齐 |
实战示例
格式化字符串
A = pi*1000*ones(1,5);
sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
3141.592654 3141.59 +3141.59 3141.59 000003141.59
连接字符串
str_array = {'red','blue','green','yellow','orange'};
strjoin(str_array, '-') % red-blue-green-yellow-orange
strjoin(str_array, ',') % red,blue,green,yellow,orange
查找替换
students = {'Zara Ali','Neha Bhatnagar',...};
new_student = strrep(students(8), 'Reva', 'Poulomi')
first_names = strtok(students)
比较字符串
str1 = 'This is test'; str2 = 'This is text'; if strcmp(str1,str2) ... else ... end
This is test and This is text are not equal
MATLAB
- MATLAB 入门指南:矩阵实验室的核心能力与应用领域全景
- MATLAB 变量深度解析:矩阵本质、赋值、多重赋值、查看与清理、长赋值、格式控制、向量创建
- MATLAB 常用命令速查:会话管理、系统操作、输入输出、矩阵数组、绘图可视化
- MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表
- MATLAB 运算符大全:矩阵/数组算术、关系、逻辑、位运算、集合运算详解
- MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算
- MATLAB 多维数组与特殊数组完全指南
- MATLAB 冒号运算符详解:向量创建与高效迭代
- MATLAB 数值类型详解:存储、转换与范围查询
- MATLAB 函数详解:定义、工作区、输入输出与多种函数类型
- MATLAB 代数方程求解:solve、因式分解与化简
- 精通 Java 字符串:创建、方法与最佳实践