Excel表格数据该怎么读取和写入之——xlsread函数和xlswrite函数
excel作为一种数据处理和管理软件,在使用MATLAB时,经常需要对Excel进行读取和写入数据操作。
新人小白,欢迎大神指点
读取函数——xlsread
读取数字
在利用matlab进行数据处理时,读取Excel中的数字是最为常见的操作。直接给方式:
数据如图:
图片:
读取方式:matlabValueMatrix = xlsread('文件地址+文件名', ‘工作表’)
例如:matlabValueMatrix = xlsread('C:\Users\Administrator\Desktop\111\Breast Cancer Wisconsin (Diagnostic)\breast-cancer-wisconsin.xls', 'sheet2')
读取结果如图:
字母读取
如图:
利用上述读取数字的方式,读取结果如下图:
图中显示第二列的字母并没有显示出来,而是显示NaN。应该使用的读入方式:
[dataBaseNum, dataBaseChar, dataBaseTxt] = xlsread('文件地址+文件名称', ‘工作表’)
例子:[dataBaseNum, dataBaseChar, dataBaseTxt] = xlsread('C:\Users\Administrator\Desktop\111\Breast Cancer Wisconsin (Diagnostic)\wdbc.xls', ‘sheet1’)
系统默认读取的sheet1的数据,当肚脐取数据在sheet1中时,可以不指明工作表。
读取结果如下:
dataBaseNum中存放的是Excel中的单纯数字部分:
dataBaseChar中存放的是Excel中的单纯字符(字母)部分:
dataBaseTxt中存放的是Excel中的所有数据部分:
写入函数——xlswrite
写入函数xlswrite函数的使用比较单一,较为常用的使用方式如下:
具体格式:xlswrite(‘文件地址+文件名称’, 需要保存的矩阵名称, ‘工作表’)
例子:xlswrite(‘C:\Users\Administrator\Desktop\111\Breast Cancer Wisconsin (Diagnostic)\wdbc.xls’, dataBaseNumEnd, ‘sheet2’)
探索篇——cell数据处理
如图所示,dataBaseChar和dataBaseTxt中的数据是以cell形式存储的,对cell数据的处理也是关键一步。小白我查阅了好多资料,并且进行了实验,适合我这种新手的解决方法,进行共享如下:
方法比较蠢,不过可以处理
clc
clear all
[dataBaseNum, dataBaseChar, dataBaseTxt] = xlsread('C:\Users\Administrator\Desktop\111\Breast Cancer Wisconsin (Diagnostic)\wdbc.xls');
dataBaseCharTemp = dataBaseChar;
tempIndex_one_to_ten = strcmp(dataBaseChar(:), 'M');
temp_M = find(tempIndex_one_to_ten == 1);
tempRow = size(temp_M, 1);
for i = 1 : tempRow
dataBaseCharTemp{temp_M(i)} = 1;
end
tempIndex_eleven_to_end = strcmp(dataBaseChar(:), 'B');
temp_N = find(tempIndex_eleven_to_end == 1);
tempRow = size(temp_N, 1);
for i = 1 : tempRow
dataBaseCharTemp{temp_N(i)} = 0;
end
dataBaseCharTempNum = cell2mat(dataBaseCharTemp);
xlswrite('C:\Users\Administrator\Desktop\111\Breast Cancer Wisconsin (Diagnostic)\wdbc.xls', dataBaseNumEnd, 'sheet2');
处理结果如图: