本文共 1319 字,大约阅读时间需要 4 分钟。
如果我使用
XLSREAD
使用您的示例文件数据,我得到了正确的输出,就像
yuk did
. 本声明来自以下文件:
XLSSRADE
可以解释您遇到的问题:
如果您的系统没有Excel
Windows已安装,或Matlab无法
访问COM服务器,
xlsread
在基本模式下工作。在这种模式下,
XLSSRADE
只读取XLS文件。
另外,我还可以使用
TEXTSCAN
:
>> fid = fopen('testData.csv','r'); %# Open the file
>> data = textscan(fid,'%s %s %s','Delimiter',',',... %# Read the data
'CollectOutput',true);
>> fclose(fid); %# Close the file
>> data = strrep(data{1},'"','') %# Format the data and remove '"'
data =
'2010-04-20 15:15:00' '8.9915176259e+00' '8.8562623697e+00'
'2010-04-20 15:30:00' '8.5718021723e+00' '8.6633827160e+00'
'2010-04-20 15:45:00' '8.4484844117e+00' '8.4336586330e+00'
'2010-04-20 16:00:00' '1.1106980342e+01' '8.4333062208e+00'
'2010-04-20 16:15:00' '9.0643470589e+00' '8.6885660103e+00'
'2010-04-20 16:30:00' '8.2133517943e+00' '8.2677822671e+00'
'2010-04-20 16:45:00' '8.2499419380e+00' '8.1523501983e+00'
'2010-04-20 17:00:00' '8.2948492278e+00' '8.2884797924e+00'
现在可以格式化单元数组中的字符串
data
在数值矩阵中使用
DATEVEC
,
CELLFUN
和
STR2NUM
:
>> dateVectors = datevec(data(:,1)); %# Format the date string
>> newData = [dateVectors(:,4) cellfun(@str2num,(data(:,2:3)))]
newData = %# A numeric matrix
15.0000 8.9915 8.8563
15.0000 8.5718 8.6634
15.0000 8.4485 8.4337
16.0000 11.1070 8.4333
16.0000 9.0643 8.6886
16.0000 8.2134 8.2678
16.0000 8.2499 8.1524
17.0000 8.2948 8.2885
转载地址:http://hyevl.baihongyu.com/