一起来学演化计算-matlab基本函数strcmp num2str 字符串格式

时间:2022-07-23
本文章向大家介绍一起来学演化计算-matlab基本函数strcmp num2str 字符串格式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

strcmp

  • 比较字符串

语法

  • tf = strcmp(s1,s2)

描述

  • tf = strcmp(s1,s2)比较s1和s2,如果两者相同,则返回1 (true)。否则,strcmp返回0 (false)。如果文本的大小和内容相同,则认为文本是相同的。返回的结果tf是逻辑类型的数据。
  • 输入可以是字符向量、字符数组和字符向量的单元格数组的组合。

示例

比较两个字符串向量

s1 = 'Yes';
s2 = 'No';
tf = strcmp(s1,s2)
tf =

     0

strcmp returns 0 because s1 and s2 are not equal.

Compare two equal character vectors.

s1 = 'Yes';
s2 = 'Yes';
tf = strcmp(s1,s2)
tf =

     1

strcmp returns 1 because s1 and s2 are equal.

在单元格数组中查找文本

s1 = 'upon';
s2 = {'Once','upon';
      'a','time'};
tf = strcmp(s1,s2)
tf =

     0     1
     0     0

数组s2中只出现一次s1,它发生在元素s2(1,2)处

比较两个字符向量单元数组

  • 比较两个字符向量单元数组中的每个元素
s1 = {'Time','flies','when';
      'you''re','having','fun.'};
s2 = {'Time','drags','when';
      'you''re','anxiously','waiting.'};
tf = strcmp(s1,s2)
tf =

     1     0     1
     1     0     0

在s1和s2中有三个相等元素的实例。这些是下标(1,1)处的“Time”,下标(1,3)处的“when”,下标(2,1)处的“you re”。

输入参数

输出参数


num2str

  • 将数字转换为字符串

语法

  • s = num2str(A) 将数字数组转换为字符串表示形式。输出格式取决于原始值。num2str用于标记和用数字给图做标题。
  • s = num2str(A,precision) 返回一个字符串表示形式,其中包含精度指定的最大有效位数。
  • s = num2str(A,formatSpec) 将formatSpec指定的格式应用于A的所有元素。

示例

浮点数的默认转换

  • 将pi和eps返回的浮点值转换为字符串
s = num2str(pi)
s =

3.1416

s = num2str(eps)
s =

2.2204e-16

指定精度

  • 指定浮点值的有效位数的最大数目
A = gallery('normaldata',[2,2],0);
s = num2str(A,3)
s =

-0.433     0.125
 -1.67     0.288

指定格式

  • 对浮点数数组指定宽度,精度和格式
A = gallery('uniformdata',[2,3],0) * 9999;
s = num2str(A,'%10.5en')
s =

9.50034e+03
6.06782e+03
8.91210e+03
2.31115e+03
4.85934e+03
7.62021e+03
  • 格式“%10.5e”以五位小数的指数格式打印每个值,“n”打印一个新行字符。并且只打印10位数字

字符串打印格式

  • 输出字段的格式,指定为包含格式化操作符的字符向量。formatSpec还可以包含普通文本和特殊字符

格式化操作符

  • 格式化操作符以百分号、%开始,以转换字符结束。还可以在%和转换字符之间指定标识符、标志、字段宽度、精度和子类型操作符。(操作符之间的空格无效,此处仅显示可读性)。

转换字符

此表显示将数字和字符数据转换为文本格式的转换字符。

可选操作符

  • 可选标识符、标志、字段宽度、精度和子类型操作符进一步定义了输出文本的格式。The optional identifier, flags, field width, precision, and subtype operators further define the format of the output text.

标识符 Identifier

  • 处理函数输入参数的顺序。使用语法n$,其中n表示函数调用中其他输入参数的位置。
  • Example: ('%3
s %2

s %1

s %2

s','A','B','C') prints input arguments 'A', 'B', 'C' as follows: C B A B.

  • Note: 如果输入参数是数组,则不能使用标识符从该输入参数指定特定的数组元素。

标志 Flags

区域宽度 Field Width

  • 要打印的最小字符数。字段宽度操作符可以是一个数字,或者一个星号( * )来引用输入参数。
  • Example: The input arguments ('%12d',intmax) are equivalent to ('% * d', 12, intmax).
  • 函数在值之前用空格填充字段宽度,除非由标记另行指定。

精度 Precision

特殊文本即转义字符

formatSpec还可以在百分号前、%或转换字符后包含附加文本

注意

  • 数值转换只打印复数的实数部分。
  • 如果指定不适合数据的转换,例如数值的字符转换,MATLAB将覆盖指定的转换,并使用%e。示例:'%s'将pi转换为3.141593e+00。
  • 如果将字符转换(%c或%s)应用于整数值,MATLAB将与有效字符代码对应的值转换为字符。示例: ' %s' converts [65 66 67] to ABC.
  • 提示num2str不接受formatSpec输入参数中的位置标识符。例如,num2str([14 15],'%2
X %1

o])会报错

  • 位置标识符指定格式化操作符处理函数输入参数的顺序,而不是输入数组的元素。当您调用num2str时,只有一个输入参数需要转换数字。
  • 算法num2str从字符串中删除任何前导空格,即使formatSpec包含空格字符标志。例如,num2str(42.67,'% 10.2f')返回一个1×5的字符数组'42.67'。