MATLAB-字符串

article/2025/8/27 15:49:00

本节我们学习如何在MATLAB中创建一个字符串。

例如:

my_string = '搬砖工程师domi'

MATLAB执行上述语句,返回以下结果:

my_string =
    '搬砖工程师domi'

MATLAB 认为所有变量,数组和字符串被视为字符数组。

让我们使用命令检查上面创建的变量:

whos

MATLAB执行上面的语句,返回以下结果:

 Name           Size            Bytes  Class    Attributes
  my_string      1x9                18  char               

你可以使用数字转换函数,如 uint8 或 uint16 字符串中的字符转换成数字代码。 

char 函数整数向量转换回字符

详细例子

在MATLAB中建立一个脚本文件,输入下述代码:

my_string = '搬砖工程师domi'str_ascii = uint8(my_string)        % 8-bit ascii valuesstr_back_to_char= char(str_ascii)  str_16bit = uint16(my_string)       % 16-bit ascii valuesstr_back_to_char = char(str_16bit)

运行该文件,显示以下结果:

my_string =
    '搬砖工程师domi'str_ascii =
  1×9 uint8 行向量
   255   255   255   255   255   100   111   109   105str_back_to_char =
    'ÿÿÿÿÿdomi'str_16bit =
  1×9 uint16 行向量
  列 1 至 8
   25644   30742   24037   31243   24072     100     111     109
  列 9
     105str_back_to_char =
    '搬砖工程师domi'

MATLAB矩形字符数组

目前为止我们已经讨论过的字符串的字符数组是一维,但是我们需要更立体的文本数据存储在我们的程序中。这是通过创建的矩形的字符数组。

建立一个矩形字符数组的最简单的方法是通过连接两个或两个以上的一维字符数组,无论是垂直或水平的要求。

您可以通过以下方式之一合并垂直字符串:

  • 使用 MATLAB 连接运算符 [] 和分离每行一个分号(;)。请注意,在该方法中的每一行必须包含相同的字符数。不同长度的字符串,应该根据需要使用空格字符。

  • 使用 char 函数。如果字符串长度不同和 char 补齐较短尾随空白,使每一行都有相同数量的字符的字符串。

详细例子

在MATLAB中建立一个脚本文件,输入下述代码:

doc_profile = ['Zara Ali                             '; ...               'Sr. Surgeon                          '; ...               'R N Tagore Cardiology Research Center']doc_profile = char('Zara Ali', 'Sr. Surgeon', ...                   'RN Tagore Cardiology Research Center')

运行该文件,显示以下结果:

doc_profile =Zara Ali                             Sr. Surgeon                          R N Tagore Cardiology Research Centerdoc_profile =Zara Ali                            Sr. Surgeon                         RN Tagore Cardiology Research Center

采取下述方式之一横向合并字符串:

  • 使用MATLAB串连运算,[],并用逗号或空格分隔输入字符串。这种方法保留任何尾随空格输入数组。

  • 使用字符串连接函数 strcat。此方法删除尾随空格输入

详细例子

在MATLAB中建立一个脚本文件,并输入下述代码:

name =     'Zara Ali                             ';position = 'Sr. Surgeon                          '; worksAt =  'R N Tagore Cardiology Research Center';profile = [name ', ' position ', ' worksAt]profile = strcat(name, ', ', position, ', ', worksAt)

运行该文件,显示以下结果:

profile =Zara Ali                             , Sr. Surgeon                          , R N Tagore Cardiology Research Centerprofile =Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center

结合成的字符串单元阵列

从前面的讨论,很显然,具有不同长度的字符串相结合,可能是一个痛苦作为在阵列中的所有字符串具有相同的长度。我们已经使用空格的字符串的结尾,其长度相等。

然而,有更有效的方式结合字符串转换成一个单元阵列的阵列。

MATLAB单元阵列可以容纳不同尺寸和类型的数据,在一个数组中。单元格阵列提供了一个更灵活的方式来存储不同长度的字符串。

cellstr 函数将字符数组转换成字符串单元阵列。

详细例子

在MATLAB中建立一个脚本文件,输入下述代码:

name =     'Zara Ali                             ';position = 'Sr. Surgeon                          '; worksAt =  'R N Tagore Cardiology Research Center';profile = char(name, position, worksAt);profile = cellstr(profile);disp(profile)

运行该文件,显示以下结果:

'Zara Ali''Sr. Surgeon''R N Tagore Cardiology Research Center'

MATLAB中的字符串函数

MATLAB 提供了许多创建、组合、分析、比较和处理字符串的字符串函数。

下表是对 MATLAB 中字符串函数的简要说明:

函数目的/作用
用于存储文本字符数组的函数,结合字符数组,等等
blanks创建空白字符的字符串
cellstr从字符数组中创建字符串单元格数组
char转换为字符数组 (字符串) 
iscellstr确定输入是否是字符串的单元格数组
ischar确定项是否为字符数组 
sprintf将数据格式化为字符串
strcat水平串联字符串 
strjoin将单元格数组中的字符串合并为单个字符串 
识别字符串部分的函数,查找和替换子串
ischar确定项是否为字符数组 
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对齐字符数组

详细例子

接下来对上述的字符串的函数进行举例说明:

格式化字符串

在MATLAB中建立一个脚本文件,输入下述代码:

A = pi*1000*ones(1,5);sprintf(' %f  %.2f  %+.2f  %12.2f  %012.2f ', A)

运行该文件,显示以下结果:

ans = 3141.592654  3141.59  +3141.59       3141.59  000003141.59

加入字符串

在MATLAB中建立一个脚本文件,输入下述代码:

%cell array of stringsstr_array = {'red','blue','green', 'yellow', 'orange'};
% Join strings in cell array into single stringstr1 = strjoin("-", str_array)str2 = strjoin(",", str_array)

运行该文件,显示以下结果:

str1 =red blue green yellow orangestr2 =red , blue , green , yellow , orange

查找和替换字符串

在MATLAB中建立一个脚本文件,并输入下述代码:

students = {'Zara Ali', 'Neha Bhatnagar', ...            'Monica Malik', 'Madhu Gautam', ...            'Madhu Sharma', 'Bhawna Sharma',...            'Nuha Ali', 'Reva Dutta', ...            'Sunaina Ali', 'Sofia Kabir'}; % The strrep function searches and replaces sub-string.new_student = strrep(students(8), 'Reva', 'Poulomi')% Display first namesfirst_names = strtok(students)

运行该文件,显示以下结果:

new_student =     'Poulomi Dutta'first_names =   Columns 1 through 6    'Zara'    'Neha'    'Monica'    'Madhu'    'Madhu'    'Bhawna'  Columns 7 through 10    'Nuha'    'Reva'    'Sunaina'    'Sofia'

比较字符串

在MATLAB中建立一个脚本文件,输入下述代码:

str1 = 'This is test'str2 = 'This is text'if (strcmp(str1, str2)) sprintf('%s and %s are equal', str1, str2)else sprintf('%s and %s are not equal', str1, str2)end

运行该文件,显示以下结果:

str1 =This is teststr2 =This is textans =This is test and This is text are not equal

 


http://chatgpt.dhexx.cn/article/oDAjCom5.shtml

相关文章

c语言:动态输入字符串数组

考研题中经常会遇到给定一条英文句子,让我们对其每个单词进行操作,不同于对整型数据操作,字符串在c语言中必须存放到数组中,无形之中又给考题增加了难度 一般情况下,字符串数组都以二维数组或指针数组定义&#xff0c…

用scanf_s输入字符串

用的是vs2019。 为了安全,scanf_s输入字符串时需要加一个数字来限制最多读取的字符数。 错误示例: char* str[100]; scanf_s("%s",str);这样写编译器没有报错,但是运行会出错,debug显示 正确写法: char…

写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。 解题思路&#xff1a; 字符串以\0作为结尾&#xff0c;则从第一个字符开始向后移动遇到\0认为字符串结束。 答案&#xff1a; #include <stdio.h> int mystrlen(char *str) {int len 0;char *pt…

C++输入字符串的几种方式

最近有复习到 C 基础知识&#xff0c;这里总结下在 C 中输入字符串的几种方式&#xff0c;有需要的可以参考&#xff1a; 1、cin >> <1> 输入一个数字 void Cin1() {int a, b;cin >> a >> b;cout << "a b " << a b <&l…

c语言如何用循环输入字符串,C语言使用scanf连续输入字符串出现的问题

#include int main() { char a,b; scanf("%c",&a)&#xff1b; scanf("%c",&b); printf("%c,%c",a,b); } 一段看上去很简单的代码&#xff0c;即使是C语言初学者也能看懂。 可是在运行的时候却出现了问题&#xff1a; ①输入a后按下回车…

c语言用scanf输入指针字符串,c语言如何用scanf输入字符串

在C语言中&#xff0c;可以使用“scanf(“格式控制字符串”,变量内存地址)”语句输入字符串。scanf()函数的第一个参数是格式字符串&#xff0c;它指定了输入的格式&#xff0c;并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。 本教程操作环…

C++中输入字符串的几种方法

C中输入字符串的几种方法 C的字符串输入方式有 1.cin>> 2.cin.get() 3.cin.getline() 4.getline() 5.gets()cin 第一种用法是逐个输入数字或者字符&#xff0c;中间用空格隔开。 第二种用法是读入一个字符串&#xff0c;遇到“空格”“TAB”“回车” 都会结束。例如&a…

C语言输入字符串

文章目录 1.scanf2.gets 1.scanf 输入字符串使用 %s。不能读取空格&#xff0c;遇到空格自动结束。例如&#xff0c;输入abcde&#xff0c;得到abcde&#xff1b;而输入abc de&#xff0c;只能得到abc。输入格式&#xff1a;scanf("%s",str)。其中str表示 地址值。 …

【C语言】字符串输入的三种方式

一、gets() 该函数原型为&#xff1a; # include <stdio.h> char *gets(char *str);gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间 # include <stdio.h> int main(void) {char a[256] {0};gets(a);printf("%s…

字符串输入的2种常用方法详解

字符串输入的2种常用方法详解 一.scanf函数1.扫描集2.逆向使用扫描集 二.gets函数 一.scanf函数 int main() {char arr[50] { 0 };scanf("%s", arr);printf("%s", arr);return 0; }这种方法可以输入字符串&#xff0c;但是只能输入一个词&#xff0c;遇到…

字符串的输入

字符串数据作为经常需要使用的数据&#xff0c;我们需要掌握它的输入&#xff0c;下面总结了不同的输入字符串的方式 c和c的有一点点不同 ①逐个逐个字符输入 我们可以设置一个数组&#xff0c;或者数组加指针的形式&#xff0c; 通过for循环或while循环的方式&#xff0c;…

C++字符串的几种输入方法(string和字符数组)

ps:本文大部分内容参考于这篇博客&#xff0c;在这里加入了自己对这些函数在字符数组和string变量的理解和总结。 C中的输入大致有6种方法&#xff1a;cin&#xff0c;cin.get(),cin.getline(),gets(),getchar() 1,cin 用法一&#xff1a;最常用的方法&#xff0c;接收一个字…

制作黑苹果安装U盘(Clover+OC+PE)三引导

制作黑苹果安装U盘&#xff08;OCCloverPE&#xff09;三引导 1.删除U盘分区表2.写入dmg到U盘3.替换EFI(Clover引导)4.扩建U盘分区表5.转换U盘分区类型 效果如图所示&#xff0c;嫌麻烦可以关注 黑果小兵的部落阁微信公众号&#xff0c;在“安装镜像”里找"10.15.6 19G73…

MINIS FORUM U820 黑苹果引导OC或CLOVER更新教程

准备工具&#xff1a;1.OC Auxiliary Tools&#xff08;简称OCAT)&#xff0c;OC Auxiliary Tools for Mac-OC Auxiliary Tools Mac版下载 V0.6.9-PC6苹果网 即新OC引导的编辑器&#xff0c;须与OC引导版本相对应&#xff0c;否则容易出错&#xff1b;2.Clover ConfiGurator&a…

黑苹果引导介绍篇

引导篇 1、EFI分区&#xff1a;全称是EFI System Partition(ESP)&#xff0c;是一个使用FAT16或FAT32的系统引导物理分区&#xff0c;支持EFI模式的电脑需要从ESP分区启动系统&#xff0c;EFI固件可从ESP加载EFI启动程序或者应用。目前主流的Clover安装的黑苹果&#xff0c;普…

WINDOWS系统下四叶草CLOVER引导U盘制作

1、进入WINDOWS系统&#xff0c;下载Boot Disk Utility ,解压并打开它。插入U盘&#xff1b; 2、点击Options设置&#xff0c;根据图选或者默认&#xff0c;点击OK&#xff1b; 制作不成功的请参照下面纠正&#xff1a;&#xff08;需要点开U盘的&#xff0b;下面的U盘&#x…

MacOS+Win10 双系统引导程序 Clover 的修复

首先&#xff0c;请做好以下准备工作&#xff1a; 1&#xff09;特定型号笔记本的EFI引导文件 2&#xff09;WinPE启动盘一枚 3&#xff09;DiskGenius 打开DiskGenius&#xff0c;我们可以看到磁盘列表 第一个磁盘&#xff0c;即ESP&#xff0c;是系统的引导盘。 开机之后&…

四叶草Clover引导界面的快捷键大全

四叶草Clover引导界面的快捷键&#xff0c;比如截屏之类的。 Clover 快捷键 Esc 退出子菜单或刷新主菜单 F1 显示帮助信息 F2 *保存preboot.log日志文件到/EFI/misc F4 *保存原始DSDT到/EFI/ACPI/origin F5 *保存初步修复的DSDT到/EFI/ACPI/origin F6 *保存显卡Bios文件到/EF…

折腾黑苹果 - 制作四叶草CLOVER引导U盘

最近开始瞎折腾黑苹果&#xff0c;几天下来发现其实安装本身不算难&#xff0c;但完善驱动真的很需要耐心。驱动的完善跟硬件本身有很大关系&#xff0c;如果你的同款硬件恰好被苹果的某款机型用过&#xff0c;很有可能装完系统后就直接被正确识别了&#xff0c;也就是所谓的“…

黑苹果制作Clover开机引导脱离U盘,小新Pro13详细教程

前言 小新Pro13在成功安装好黑苹果之后&#xff0c;心情是否很激动&#xff1f;但是想到每次开机都要插入U盘&#xff0c;总不能一直这样吧&#xff0c;放心&#xff01;这些问题大神&#xff08;不是指我&#xff09;都已经考虑好了&#xff0c;目前主要有Clover和OC这两种方…