matlab中double、char和cell的互转

小鱼这两天被导师嫌弃,说一个txt文档转换为mat格式都花了半天时间,不就一个save函数的事吗。哎,对会的人来说可能真的是一个函数的事,但是对于我这种对matlab不熟的初学者,真的不是那么简单,其中涉及各种转换,比如double,char,cell的互转。 
比如我有一个txt文档是这样子的: 
 
我要的信息是该txt文档的第4-7这四列 
首先我们要读入txt文档,读入txt文档的函数为:A=importdata(filename.txt),读入之后才可以对文档进行处理,读入之后一般会有data和textdata两个字段,你需要那个就直接A.data或A.textdata获取。 
获取完之后就存在这转换问题了,比如我们最终要的格式为: 
 
可以看出有些事char字符型,有的是矩阵型 
所以接下来就是转换问题,前提是要弄清楚你要的是什么类型,有的是什么类型 
1、cell2mat:将cell转换为mat的char型 
2、str2num:将mat从char转换为double型 
3、cellstr:将char转cell 
4、num2str:将double转char 
5、num2cell:将double直接转cell

比如:

 

files = dir( ['\*.txt']);
name = files.name;
A = importdata(name);
info = A.textdata;
B(1).objects(1).bbox(:,1)=str2num(cell2mat(info(j,4)));         B(1).objects(1).bbox(:,2)=str2num(cell2mat(info(j,5)));
123456

就可以获取txt文档中第4列和第5列的数据存入一个B的struct中。 
这部分如果有什么问题需要小鱼解答的,可以留下评论,小鱼会的话一定帮忙解决哦
--------------------- 
作者:需要多喝水的鱼 
来源:CSDN 
原文:https://blog.csdn.net/zllljf/article/details/78881081 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(matlab)