MATLAB导入xls文件以及cell的使用方法

使用matlab读入.xls的文件时候可以用[T,TXT,RAW]=xlsread("filename.xls")导入也可以使用import data 的办法手动导入文件。但是我比较倾向于自动化程度比较高的前者,毕竟有时候导入的文件数量是几百个手动导入不科学。xlsread返回的参数有三个,第一个是xls里面以数字形式储存的数据,第二个是文字形式储存的数据,第三个是前两者的合并也就是一个完整的excel表格。T参数返回呢是在matlab中是以matrix的形式组织的,而 TXT和RAW呢是以cell的形式组织的,而cell的用法接下去会讲。   

如果不想导入数据的时候这么麻烦呢建议对excel表格的数据形式进行处理。把需要用当成数字形式处理的数据转成数字如下图:



       原本整个execl文件都是以文本的形式储存如果读入,T为空;此时我将其中我需要的某一列转换成了数字格式储存,这样xlsread的时候出来的数据就是数字啦,T不为空。
又或者可以将读入的TXT转换成matrix形式。但是TXT是cell类型的数据,如何将cell转成matrix可以用 cell2mat().但是不是所有的cell都可以用cell2mat().必须要满足一个基本要求是, 元胞数组中,处于同行的矩阵要有相等的行数, 处于同列的矩阵要有相等的列数。所以当我在用cell2mat()读入数据时总是出现dimension unconsistent.因为我读的列有些字符串的长度不相同,如“10688363”和“1068836”这两个cell的列数不对齐。那要怎么办呢?


1.把cell转换成string再将string转换成num就好了。

filename='网格50.xls';
[T,TXT,RAW] = xlsread(filename,1);%这里T为空
TXT2 = TXT(2:end,8);
T= str2num(char(TXT2));



2.就是使用cellfun()来帮助啦日后再研究。

 

[Matlab]从细胞型转换为矩阵From cell to matrix  



你可能感兴趣的:(好记性不如烂笔头)