精华内容
下载资源
问答
  • matlabnum2str函数的使用

    万次阅读 多人点赞 2018-09-26 16:20:15
    先前使用num2str函数只是使用了该函数最常用的功能:将数字转换为字符串,但其实该函数还有额外格式上的功能,今天使用图像批处理的时候发现一对图像的文件名有格式上的问题需要注意。 比如现在我有一个文件夹,下面...

    参考:
    https://zhidao.baidu.com/question/431413920.html

    问题描述

    先前使用num2str函数只是使用了该函数最常用的功能:将数字转换为字符串,但其实该函数还有额外格式上的功能,今天使用图像批处理的时候发现一对图像的文件名有格式上的问题需要注意。
    比如现在我有一个文件夹,下面有2种图像,我这里是MS和Pan,其中存在一一对应的关系。MS文件名格式为original_01.tif,……,original_id,tif;Pan文件名格式为pan_01.tif,……,pan_id.tif,我们注意到id即使是1-9之间也占了2个字符的位置。如果我们使用如下所示的代码片段遍历整个文件夹,会发现1-9编号的图像不会被访问到。

    files_path = './images/';          % 图像文件夹路径
    img_path_list = dir(strcat(files_path,'*.tif'));
    
    img_num  = length(img_path_list)/2; % Pan和对应多光谱是一对
    
    for  index = 1:img_num
            % 读取Pan和对应的多光谱图像
            gt_name = img_path_list(index).name;% 获取图像名,只得到了多光谱图像
            pan_name = ['pan_',num2str(index),'.tif'];
            disp(gt_name);   %测试
            disp(pan_name);
            disp('=============');
    end
    

    结果如下图所示,我们会发现红色框里面的内容与我们所想要的pan_01.tif格式不一致。
    在这里插入图片描述

    解决方法

    首先介绍一下num2str函数的使用方法,然后我们就知道该如何解决上面的问题了。调用形式如下:
    1)str = num2str(A) ;
    将数字A转换成char类型,值得注意的是A也可以是数字类型的数组。

     a =[1,2,3,4];
     y = num2str(a);
     whos 
    

    2)str = num2str(A, precision)
    A: 数值类型的数组或者是单个的数值
    precision:转换成字符穿保留的数字位数

    a = [1.222222,2.11111111,3.4444444];
    y=num2str(a,2)
    # 结果
    y =
    
        '1.2      2.1      3.4'
    

    3)str = num2str(A, format)
    A: 数值类型的数组或者是单个的数值
    format:指定数字转换为字符串的格式,通常’%11.4g’是默认的。
    也可以指定转换为几位的字符串,不足用0填充,如%02d
    %03d等

    a = 1;
    y1 = num2str(a,'%02d'); % '01'
    y2 = num2str(a,'%03d'); % '001'
    

    看到该函数的第3种调用形式,我们就应该知道如何解决刚开始说的格式不一致的问题了。

    files_path = './images/';          % 图像文件夹路径
    img_path_list = dir(strcat(files_path,'*.tif'));
    
    img_num  = length(img_path_list)/2; % Pan和对应多光谱是一对
    
    for  index = 1:img_num
            % 读取Pan和对应的多光谱图像
            gt_name = img_path_list(index).name;% 获取图像名,只得到了多光谱图像
            pan_name = ['pan_',num2str(index,'%02d'),'.tif'];
            disp(gt_name);   %测试
            disp(pan_name);
            disp('=============');
    end
    
    展开全文
  • [Matlab] num2str函数用法

    万次阅读 多人点赞 2019-01-20 20:41:27
    T = num2str(X) T = num2str(X,N) T = num2str(X,FORMAT) T = num2str(X) >> A = [1, 2, 3]; B = num2str(A); disp(B) 1 2 3 功能:把数组X中的数转换成字符串表示形式。 T = ...

    功能:把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。

    T = num2str(X)

    T = num2str(X,N)

    T = num2str(X,FORMAT)


    T = num2str(X)

    >> A = [1, 2, 3];
    B = num2str(A);
    disp(B)
    1  2  3

    功能:把数组X中的数转换成字符串表示形式。

    T = num2str(X,N)

    >> C = [1.564, 0.12345];
    T = num2str(C,2);
    disp(T)
    1.6     0.12

    功能:把数组C转换成字符串形式表示,precision表示精度, 比如precision为2表示保留最多3位有效数字, 例如1.564转换后为1.6(四舍五入),0.12345转换后为0.12。即从左边第一个不为0的数开始保留2个数值。

    T = num2str(X,FORMAT)

    >> C = [1.564, 0.12345];
    T = num2str(C,2);
    disp(T)
    1.6     0.12
    >> T2 = num2str(C, '%.6f');
    disp(T2)
    1.5640000.123450

    功能:按format指定格式进行格式化转换,%.6f代表小数点后6位。

    展开全文
  • Matlabnum2str函数的用法

    万次阅读 多人点赞 2016-07-06 07:42:41
    matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。   语法格式:  str = num2str(A)  把数组A中的数转换成字符串表示形式。  str = num2str(A, precision)  把数组A转换成字符...
    函数功能: 
    
    把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。
      
    语法格式:
      str = num2str(A)
      把数组A中的数转换成字符串表示形式。
      str = num2str(A, precision)
      把数组A转换成字符串形式表示,precision表示精度, 比如precision为3表示保留最多3位有效数字, 例如0.5345转换后为0.534,1.2345转换后为1.23。即从左边第一个不为0的数开始保留3个数值。
      str = num2str(A, format)
      按format指定格式进行格式化转换,通常'%11.4g'是默认的。

    相关函数: 
    mat2str, int2str, str2num, sprintf, fprintf

    应用举例:
      >> A = [1, 2, 3];
      >> B = num2str(A);
      >> fprintf('%s', B)
      1 2 3>>
      >> C = [1.564, 0.12345];
      >> D = num2str(C, 3)
      D =
      1.56 0.123
      >> D = int32(1)
      D =
      1
      >> num2str(D, '%.6f')
      ans =

      1.000000


    展开全文
  • Matlabnum2str函数使用

    千次阅读 多人点赞 2020-06-02 10:33:09
    num2str函数将数字转换为字符数组。 语法 s = num2str(A) s = num2str(A,precision) s = num2str(A,formatSpec) 说明 s = num2str(A)将数值数组转换为表示数字的字符数组。输出格式取决于原始值的量级。num2...

    目录

    语法

    说明

    示例

    1.浮点值的默认转换

    2.指定精度

    3.指定格式

    输入参数

    输出参数

    提示

    算法


            num2str函数将数字转换为字符数组。

    语法

    s = num2str(A)
    
    s = num2str(A,precision)
    
    s = num2str(A,formatSpec)

    说明

    s = num2str(A) 将数值数组转换为表示数字的字符数组。输出格式取决于原始值的量级。num2str 对使用数值为绘图添加标签和标题非常有用。

    s = num2str(A,precision)返回表示数字的字符数组,最大有效位数由 precision 指定。

    s = num2str(A,formatSpec) 将 formatSpec 指定的格式应用到 A 所有元素。

    示例

    1.浮点值的默认转换

            将 pi 和 eps 返回的浮点值转换为字符向量。

    s = num2str(pi)
    
    s = 
    '3.1416'
    
    
    s = num2str(eps)
    s = 
    '2.2204e-16'

    2.指定精度

            指定浮点值的最大有效位数。

    A = gallery('normaldata',[2,2],0);
    s = num2str(A,3)
    s = 2x16 char array
        '-0.433     0.125'
        ' -1.67     0.288'
    

    3.指定格式

            指定浮点值数组的宽度、精度及其他格式。

    A = gallery('uniformdata',[2,3],0) * 9999;
    s = num2str(A,'%10.5e\n')
    s = 2x35 char array
        '9.50034e+03...'
        '2.31115e+03...'

            格式 '%10.5e' 使用具有五个小数位数的指数格式输出各个值,'\n' 输出换行符。

    输入参数

    A - 输入数组

    数值数组

    输入数组,指定为数值数组。

    数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
    复数支持: 

    precision - 有效数字最大位数
    正整数

            输出字符串中的有效数字最大位数,指定为正整数。如果指定的precision超出输入浮点数据类型的精度,则结果可能与指定的精度的输入值不匹配。结果取决于计算机硬件和操作系统。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    formatSpec - 输出字段的格式
    格式化操作符

            输出字段的格式,使用格式化操作符指定。formatSpec还可以包括普通文本和特殊字符。

    formatSpec可以是用单引号引起来的字符向量,从R2016b开始,也可以是字符串标量。

    格式化操作符

            格式化操作符以百分号 % 开头,以转换字符结尾。转换字符是必需的。也可以在 % 和转换字符之间指定标识符、标志、字段宽度、精度和子类型操作符。(操作符之间的空格无效,在这里显示空格只是为了便于阅读。)

                                                              

    转换字符

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

    值类型转换详细信息

    有符号整数

    %d 或 %i

    以 10 为基数

    无符号整数

    %u

    以 10 为基数

    %o

    以 8 为基数(八进制)

    %x

    以 16 为基数(十六进制),小写字母 af

    %X

    与 %x 相同,大写字母 AF

    浮点数

    %f

    定点记数法(使用精度操作符指定小数点后的位数。)

    %e

    指数记数法,例如 3.141593e+00(使用精度操作符指定小数点后的位数)。

    %E

    与 %e 相同,但为大写,例如 3.141593E+00(使用精度操作符指定小数点后的位数)。

    %g

    更紧凑的 %e 或 %f,不带尾随零(使用精度操作符指定有效数字位数。)

    %G

    更紧凑的 %E 或 %f,不带尾随零(使用精度操作符指定有效数字位数。)

    字符或字符串

    %c

    单个字符

    %s

    字符向量或字符串数组。输出文本的类型与 formatSpec 的类型相同。

    可选操作符

            可选标识符、标志、字段宽度、精度和子类型操作符进一步定义了输出文本的格式。

    • 标识符

      处理函数输入参数的顺序。使用语法 n$,其中 n 代表函数调用中其他输入参数的位置。

      示例:('%3$s %2$s %1$s %2$s','A','B','C') 将输入参数 'A''B''C' 输出为:C B A B

      注意:如果输入参数为数组,则不能使用标识符指定该输入参数中的特定数组元素。

    • 标志

      '–'

      左对齐。
      示例:%-5.2f
      示例:%-10s

      '+'

      始终为任何数值输出符号字符(+ 或 –)。
      示例:%+5.2f
      右对齐文本。
      示例:%+10s

      ' '

      在值之前插入空格。
      示例:% 5.2f

      '0'

      在值之前补零以填充字段宽度。
      例如:%05.2f

      '#'

      修改选定的数值转换:

      • 对于 %o%x 或 %X,将输出 00x 或 0X 前缀。

      • 对于 %f%e 或 %E,即使精度为零也将输出小数点。

      • 对于 %g 或 %G,不删除尾随零或小数点。

      示例:%#5.0f

      • 字段宽度

        要输出的最低字符数。字段宽度操作符可以是数字,也可以是指向输入参数的星号 (*)。

        当将 * 指定为字段宽度操作符时,其他输入参数必须指定打印宽度和要打印的值。宽度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为字段宽度操作符时,可以打印具有不同宽度的不同值。

        示例:输入参数 ('%12d',intmax) 等效于 ('%*d',12,intmax)

        示例:输入参数 ('%*d',[2 10 5 100]) 返回 '10 100',其中两个空格分配给 10,五个空格分配给 100。也可以将字段宽度和值指定为多个参数,如 ('%*d',2,10,5,100) 中所示。

        除非标志另行指定,否则该函数使用空格填充值之前的字段宽度。

        • 精度

          对于 %f%e 或 %E

          小数点右侧的位数
          示例:'%.4f' 将 pi 输出为 '3.1416'

          对于 %g 或 %G

          有效位数
          示例:'%.4g' 将 pi 输出为 '3.142'

          精度操作符可以是数字,也可以是指向参数的星号 (*)。

          当将 * 指定为字段精度操作符时,其他输入参数必须指定打印精度和要打印的值。精度和值可以是参数对组,也可以是数值数组中的对组。使用 * 作为精度操作符时,您可以打印具有不同精度的不同值。

          将 *.* 指定为字段宽度和精度操作符时,必须以三元组形式指定字段宽度、精度和值。

          示例:输入参数 ('%.4f',pi) 等效于 ('%.*f',4,pi)

          示例:输入参数 ('%6.4f',pi) 等效于 ('%.*f',6,4,pi)

          示例:输入参数 ('%*.*f',6,4,pi,9,6,exp(1)) 返回 '3.1416 2.718282',其中以 9 和 6 分别作为 exp(1) 输出的字段宽度和精度。

    • 子类型

              可以使用子类型操作符将浮点值显示为八进制、十进制或十六进制值。子类型操作符紧邻转换字符之前。此表显示了可使用子类型的转换。

      输入值类型

      子类型和转换字符

      输出值类型

      浮点数

      %bx 或 %bX
      %bo
      %bu

      双精度十六进制、八进制或十进制值
      例如:%bx 将 pi 输出为 400921fb54442d18

      %tx 或 %tX
      %to
      %tu

      单精度十六进制、八进制或十进制值
      例如:%tx 将 pi 输出为 40490fdb

    格式化操作符前或后的文本

      formatSpec 还可以在百分号 % 前添加其他文本,或者在转换字符后添加其他文本。文本可以为:

    • 要打印的普通文本。

    • 无法作为普通文本输入的特殊字符。此表显示了如何在 formatSpec 中表示特殊字符。

      特殊字符

      表示形式

      单引号

      ''

      百分比字符

      %%

      反斜杠

      \\

      警报

      \a

      退格符

      \b

      换页符

      \f

      换行符

      \n

      回车符

      \r

      水平制表符

      \t

      垂直制表符

      \v

      其 Unicode® 数值可以通过十六进制数 N 表示的字符

      \xN

      示例:sprintf('\x5A') 返回 'Z'

      其 Unicode 数值可以通过八进制数 N 表示的字符

      \N

      示例:sprintf('\132') 返回 'Z'

            使用格式化操作符进行转换时要注意的行为

    • 数值转换仅输出复数的实部。

    • 如果指定不适合数据的转换(例如数值的文本转换),MATLAB® 将改写指定的转换并使用 %e

      示例:'%s' 将 pi 转换为 3.141593e+00

    • 如果对整数值应用文本转换(%c 或 %s),MATLAB 会将对应于有效字符代码的值转换为字符。

      示例:'%s' 将 [65 66 67] 转换为 ABC

    数据类型: char | string

    输出参数

    s - 输入数组的文本表示形式
    字符数组

    输入数组的文本表示形式,以字符数组的形式返回。

    提示

      num2str 不接受 formatSpec 输入参数中的位置标识符。例如,num2str([14 15],'%2$X %1$o) 将返回错误。

            位置标识符指定格式化操作符处理函数的输入参数的顺序,而不是处理输入数组的元素的顺序。当调用 num2str 时,只有一个输入参数包含要转换的数字。

    算法

      num2str 将删除字符数组中的任何前导空格,即使formatSpec包含空格字符标志也是如此。例如,num2str(42.67,'% 10.2f') 返回一个 1×5 字符数组 '42.67'

    展开全文
  • Matlabnum2str函数

    2021-06-02 16:44:10
    matlabnum2str函数的功能是:把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。 在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息,从中可以看出num2str的使用方法有三种...
  • matlab num2str怎么设置小数点位数

    千次阅读 2020-10-07 16:08:42
    str = {[num2str(year(y)), 'ing: ', num2str(100*i/1200,'%4.2f'), '%', ' Time: ', num2str(toc/60, '%4.2f'), 'm'], [' pre: ',num2str(toc*20/i,'%4.2f'), 'm', ' rem: ', num2str((toc*20/i-toc/60),'%4.2f'),'...
  • matlabstr2num 函数str2double 函数的区别

    万次阅读 多人点赞 2018-09-12 17:03:59
    str2num 函数str2double 函数的相同点与不同点 1. 相同点:当str为一个含数字的字符串时,str2num 函数str2double 函数一样。 如: 2. 不同点:当str为多个字符串构成的数组时,str2num 函数str2...
  • 一起来学演化计算-matlab基本函数strcmp num2str 字符串格式 觉得有用的话,欢迎一起讨论相互学习~Follow Me strcmp 比较字符串 语法 tf = strcmp(s1,s2) 描述 tf = strcmp(s1,s2)比较s1和s2,如果两者相同,则...
  • Matlabstr2num函数的使用

    千次阅读 2020-12-14 08:51:03
    str2num函数将字符数组或字符串转换为数值数组。 语法 X = str2num(chr) [X,tf] = str2num(chr) 说明 X = str2num(chr)将字符数组或字符串标量转换为数值矩阵。输入可以包含空格、逗号和分号,以指示单独的元素...
  • matlab函数int2str, num2str, str2num,mat2str

    千次阅读 2019-08-31 23:18:25
    函数名:int2str 功能:将整数值转换为字符串 输入格式:str = int2str(N) ...函数名:num2str 功能:将数值型变量转换为字符串类型 输入格式: str = num2str(A) str = num2str(A,precision) s...
  • **matlabnum2str函数用法**

    千次阅读 2018-10-23 14:35:07
    1、num2str: 把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出。 2、用法说明: (1)str = num2str(A) 把数组A中的数转换成字符串表示形式。 (2str = num2str(A, precision)  把数组A转换...
  • matlab函数int2str num2str matlab20170313

    千次阅读 2017-03-13 09:01:05
    本系列文章为每天一点matlab或simulink函数学习,大部分来自于matlab官网help 函数名:int2str 功能:将整数值转换为字符串若输入不是整数值 输入格式:str = int2str...函数名:num2str 功能:将数值型变量转换为字
  • MATLABnum2str用法笔记

    千次阅读 2017-03-12 14:31:00
    一、在matlab中用 num2str把矩阵转换为字符串时,默认是在矩阵元素之间加2个空格,对特定数据来讲,2个空格已经改变了字符串的长度,比如,想把矩阵[1,2,3]转换为‘1 2 3’,即转换成的字符串要求各矩阵元素相隔...
  • 函数名:int2str 功能:将整数值转换为字符串 输入格式:str = int2str(N) 备注:就将该值四舍五入后转换为字符串,接受向量和矩阵输入。 如果是向量和矩阵输入,列数字之间会补加两个空格。
  • matlabnum2str()语法

    万次阅读 多人点赞 2014-06-28 16:07:10
    matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。   语法格式:  str = num2str(A)  把数组A中的数转换成字符串表示形式。  str = num2str(A, precision)  把数组A转换成字符串形式...
  • matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息。   语法格式:  str = num2str(A)  把数组A中的数转换成字符串表示形式。  str = num2str(A, precision)  把数组A转换成字符串形式...
  • 标题在matlabnum2str有什么作用 转载https://zhidao.baidu.com/question/431413920.html 语法格式:  str = num2str(A)  把数组A中的数转换成字符串表示形式。  str = num2str(A, precision)  把数组A...
  • matlab str2double与str2num

    万次阅读 2017-01-27 11:48:28
    str2double可以处理的代表数字的种类比str2num多, 例如:str2double能处理1,000,但是str2num不能。 str2num 使用EVAL来执行一个字符串,str2double 不会。 >> str2num('sqrt(pi)') ans = 1.77245385090552一般...
  • matlabnum2str控制空格数及其他用法

    千次阅读 2017-02-17 16:12:18
    matlab中用 num2str把矩阵转换为字符串时,默认是在矩阵元素之间加2个空格,对特定数据来讲,2个空格已经改变了字符串的长度,比如,想把矩阵[1,2,3]转换为‘1 2 3’,即转换成的字符串要求各矩阵元素相隔一个...
  • Num2str函数是一个相当有用的函数,一般配合[]连接符使用 1 用于求导数的表达式,函数X^2 – y^p + y^t,pt为数值,可以跟随程序的不同被赋予不同的值。 Diff([‘x^2 – y^’ num2str§ ‘+y^’ num2
  • Matlabnum2str中实现数字1到字符串0001的变换,批量修改文件名需要确保文件名格式为0001.jpg、0002.jpg、......、1345.jpg。所以需要将数字1转换为字符串0001。
  • matlabnum2str

    万次阅读 2017-11-30 19:42:02
    在求导数,积分,方程的过程中,难免会遇到一些参数要随着情况有点变化,这时,你就需要能够动态的表示出你的表达式,Num2str函数是一个相当有用的函数,一般配合[]连接符使用,下面将我接触到的一些用法写出来。...
  • matlabnum2str的应用(转)

    千次阅读 2018-08-22 12:43:59
    在求导数,积分,方程的过程中,难免会遇到一些参数要随着情况有点变化,这时,你就需要能够动态的表示出你的表达式,Num2str函数是一个相当有用的函数,一般配合[]连接符使用,下面将我接触到的一些用法写出来。...
  • >> f1=@sin f1 =   @sin %创建一个函数sin的函数句柄,便于下面实验的需要 ----------------------------------------------------------------------------------------------- >> func2str(f1) ans =
  • Matlab 曲线拟合之 polyfit 、polyval、poly2str 函数

    万次阅读 多人点赞 2018-09-06 09:09:19
    原文出处(仅供参考) ttps://www.cnblogs.com/farewell-farewell/p/7227516.html ... 1 Matlab 曲线拟合之polyfit与polyval函数 p=polyfit(x,y,n) [p,s]= polyfit(x,y,n) 说明:x...
  • Matlabnum2hex函数使用

    2020-11-26 13:38:06
    num2hex函数调用格式为: hexStr = num2hex(X) X为输入数组,指定为数值数组。它的数据类型为:single或者double 二.说明 hexStr = num2hex(X)使用十六进制数字返回X的 IEEE®格式表示形式。 如果X...
  • 为什么这样子写改不过来他的数据类型? (https://img-ask.csdn.net/upload/202003/07/1583552926_622281.png) (https://img-ask.csdn.net/upload/202003/07/1583552995_157606.png)
  • Matlab中fopen,fscanf,num2str的用法总结

    千次阅读 2018-04-25 21:49:10
    fopen - Open file, or obtain information about open files  This MATLAB function opens the file, filename, for binary read access, and  returns an integer file identifier equal to or greater than...
  • Matlab中hex2num函数使用

    2020-11-26 11:00:33
    hex2num函数将IEEE 十六进制格式转换为双精度数。 一.语法 X = hex2num(hexStr) hexStr表示十六进制数的文本,它可以指定位字符数组、字符向量元胞数组或字符串数组。 ·如果hexStr是字符向量元胞数组或字符串...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,004
精华内容 4,001
关键字:

matlab的num2str函数

matlab 订阅