MATLAB字符串处理函数用来对文本做比较、查找、替换和拆分。判断两个字符串是否相等,也走这里,不要直接用 ==。
比较:strcmp 家族
strcmp('test', 'test') % 1(相等)
strcmp('test', 'text') % 0(不相等)
strcmpi('Test', 'test') % 1(忽略大小写)
strncmp('abcdef', 'abcXYZ', 3) % 1(只比前 3 个字符)返回的是逻辑值 1 或 0,可以直接当 if 的条件:
if strcmp(color, 'red')
disp('是红色')
end查找:strfind
在字符串里找子串出现的位置:
strfind('banana', 'na') % [3 5]:两处出现的位置替换:strrep
strrep('Hello World', 'World', 'MATLAB') % 'Hello MATLAB'对 cell 数组也有效,可以一次替换一批:
names = {'Reva Dutta', 'Zara Ali'};
strrep(names, 'Reva', 'Poulomi') % {'Poulomi Dutta', 'Zara Ali'}拆分:strsplit 与 strtok
按分隔符拆成多段,用 strsplit:
parts = strsplit('2026-08-12', '-') % {'2026','08','12'}只取第一个词(到空格为止),用 strtok:
[first, rest] = strtok('Ada Lovelace') % first='Ada', rest=' Lovelace'从一串姓名里抽出姓(第一个词):
students = {'Zara Ali', 'Neha Bhatnagar', 'Monica Malik'};
strtok(students) % 返回 cell:{'Zara','Neha','Monica'}格式化:sprintf
把数字嵌进文字里,用 sprintf。语法和 fprintf 很接近,但结果写进字符串,而不是直接打到屏幕:
A = pi * 1000;
msg = sprintf('π 的 1000 倍约是 %.2f', A)
disp(msg)msg = 'π 的 1000 倍约是 3141.59'常用格式符:%f 浮点数、%d 整数、%s 字符串、%.2f 保留两位小数、%12.2f 宽度 12 右对齐。