许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB学习笔记6:进阶函数与编程技巧

MATLAB学习笔记6:进阶函数与编程技巧

阅读数 4
点赞 0
article_banner

Matlab学习笔记 Day6

注:仅供学习使用,部分内容来自学校课程课件或网络,理性探讨。

1.字符串(help strings命令)

   MATLAB中的字符串常量是用单引号括起来的,它实际上是一个行向量(字符型数组)。每个元素是一个字符,在内存中实际存储的是其ASCII码值,元素的标识方法和数值向量相同。

2.常用字符串函数 help strfun命令

   (1)获取字符串基本信息

   disp(x)/ display  (x):显示变量x的内容

   class(x):以字符串的形式返回变量x的类型名

   ischar(x):如果x是一个字符串则返回1,否则反回0

   length(x):若x为字符串,则返回x的长度

   isletter(x):逐个检查x每个元素是否为字母

   isspace(x):逐个检查x的每个元素是否为空格

案例分析:

>> strA = 'Xiao Mu';
>> disp(strA),class(strA),ischar(strA),...
length(strA),isletter(strA),isspace(strA)
Xiao Mu

ans =

    'char'


ans =

  logical

   1


ans =

     7


ans =

  1×7 logical array

   1   1   1   1   0   1   1


ans =

  1×7 logical array

   0   0   0   0   1   0   0

(2)字符串的基本操作(一些常见操作)

   strcat(s1,s2,…,sn):连接字符串,得到新字符串

   strvcat(t1,t2,…,tn):垂直连接字符串,得到字符串矩阵

   strmatch(S1,S2):逐行搜索字符串矩阵s2,给出以s1开头的行号

   findstr(s1,s2):查找s1在s2中出现的位置

   strfind(s1,s2):在s1中查找s2出现的位置

   strrep(s1,s2,s3):把字符串s1的所有出现s2的地方替换为s3

   strtok(s):查找字符串S的第一个间隔符前的内容

   blanks(n):生成含有n个空格的字符串

   deblank(s):返回删除字符串S尾部空格得到的字符串

3.字符串比较函数

   strcmp(S1,S2):比较字符串是否相等,相等返回1,反之0;

   strcmpi(s1,s2):忽略大小写比较字符串是否相等。

   strncmp(s1,s2,n):比较两个字符串前n个字符是否相等。

   strncmpi(s1,s2,n):忽略大小写比较字符串s1和s2前n个字符是否相等

4.字符串转换函数

   upper(A): 把字符串A中所有小写字母转换为大写字母

   lower(A):把字符串A中所有大写字母转换为小写字母
double(x):把字符串x转换为double型数组(ASCII码)

   char(X):把ASCII码转换为字符串

   int2str(x):把整数x转换为字符串

   num2str(X):将数值x转换为字符串

   str=mat2str(MAT):将数值矩阵转换为字符串形式

   eval(expstr):执行字符串

5.字符串生成函数

   str=sprintf(format,data1,…datan)

   按第一个输入参数format的指定格式,输出变量,将输出的内容作为字符串S。

>> str=sprintf('The value of pi is %8.6f',pi)

str =

    'The value of pi is 3.141593'

6.元胞数组

   在一个元胞数组的不同元胞中可以存放不同类型、不同长度的数据。

(1)元胞数组的建立与显示

   直接输入整个元胞数组:

>> s={'north','east','south','west'};
>> a={'this is the first example',hadamard(2);ones(3),s}

a =

  2×2 cell array

    {'this is the first example'}    {2×2 double}
    {3×3 double                 }    {1×4 cell  }

(2)元胞与元胞中内容的标识与显示

   元胞数组维数不受限制;元胞数组对元胞编址的方法也有单下标和全下标;“元胞”和“元胞中的内容”是两个不同的范畴,例如a(1,2)指的是元胞数组a中第一行第二列的胞元素(类似于存放物品的格子及内容物),而a{1,2}是元胞数组a中第一行第二列元胞中的内容(仅是格子中存放的内容物)。

(3)通过元素 赋值 法创建元胞数组

>> A{1}='This is the first string';
A{2}='This is the second string';
A{3}=rand(3);
>> A

A =

  1×3 cell array

    {'This is the fir…'}    {'This is the sec…'}    {3×3 double}

元胞数组的显示函数有:

   celldisp( C ):显示元胞数组C的所有内容

   cellplot( C ):以嵌套的格子的形式显示元胞数组C有元素的结构

仍然以上述A为例

>> celldisp(A)
 
A{1} =
 
This is the first string
 
 
A{2} =
 
This is the second string
 
 
A{3} =
 
    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575
 >> cellplot(A)
 (弹窗)

在这里插入图片描述

(4)cell函数

   建议先采用cell函数创建空的元胞数组,然后再对元胞元素的元素赋值。

   A=cell(N) 创建空的NXN的元胞数组

   A=cell(M,N)或A=cell([M,N]) 创建空的MXN的元胞数组


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空