参考:
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函数的使用相关推荐

  1. Matlab中num2str函数的用法

    函数功能:  把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出.在matlab命令窗口中键入doc num2str或help num2str即可获得该函数的帮助信息. 语法格式 ...

  2. 关于MATLAB中S函数中mdlDerivatives(状态变量微分)的使用

    1.MATLAB中S函数为: function [sys,x0,str,ts]=chap_plant(t,x,u,flag) switch flag case 0[sys,x0,str,ts]=mdl ...

  3. Matlab中bwmorph函数的使用

    Matlab中bwmorph函数的使用 Matlab中提供了一个基于形态学的处理函数,即以膨胀.腐蚀等操作为基础,其语法格式如下: bw2=bwmorph(bw1,operation,n); 其中bw ...

  4. 9.matlab中repmat函数

    来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...

  5. 如何在Matlab中获取函数参数的数目?

    本图文详细介绍了Matlab中获取函数参数数目的方法.

  6. matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first

    matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...

  7. 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法

    关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...

  8. Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)

    Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...

  9. cumsum在matlab中,matlab中cumsum函数和sum函数详解

    调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...

  10. matlab中fprintf函数的具体使用方法

    matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...

最新文章

  1. C++——构造函数(拷贝构造,拷贝复制),析构函数,操作符重载
  2. 【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )
  3. 链表list(链式存储结构实现)_数据结构知否知否系列之 — 线性表的顺序与链式存储篇(8000 多字长文)...
  4. python循环捕捉异常_python异常捕捉以及处理
  5. 关于获取网络流,根据网络流转byte[],本地文件流转byte[],方法记录
  6. 搭建github服务器_搭建一个属于自己的公网博客
  7. 如何优雅的关闭 Spark Streaming 程序(2种思路)
  8. javascript笔记---貌似大叔
  9. jsp漂亮的登录界面源码_【案例+源码】详解MVC框架模式及其应用
  10. 《Web应用基础》课程结业报告
  11. c/c++原子锁应用(跨平台)
  12. server2016安装oracle10,[安装] win2012,2016 能安装oracle 10g吗
  13. 独立对honor荣耀来说有哪些好处?
  14. 张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  15. 光学变焦----景深=景深远界-景深近界
  16. 2s-AGCN论文理解
  17. android tun0 流量统计,Android应用流量统计——NetworkStatsManager使用-Go语言中文社区...
  18. 关于CASIO系列可编程计算器在公路施工测量中的应用
  19. matlab的round函数是什么意思,Oracle round函数是什么意思?怎么运用?
  20. java自动投票软件_如何编写一个自动投票程序

热门文章

  1. excel取消隐藏_猴哥讲述:对excel工作表进行隐藏和取消隐藏的操作行为
  2. 推荐一个logo免费设计的网站
  3. SOLD2算法之3: 特征点与heatmap结合检测有效线段(CVPR 2021)
  4. ubuntu14.04不能上网
  5. 二进制、十进制、八进制、十六进制 各代表的英文字母是什么
  6. 计算机无法访问网络位置,不能访问网络位置,详细教您怎么解决
  7. C1能力认证训练题解析 _ 第一部分 _ 计算机通识
  8. leetcode232 用栈实现队列
  9. SecureCRT 8.3破解
  10. safri 对于display:block;的元素显示不出来 其他所有浏览器均正常