clc clear all [data1,data3]=textread('E:RSWebmahoyt数据集movielensu.user','%s%*d%s%*s%*s','delimiter', '|'); fuhao = cellstr(repmat(',',length(data1),1)); data = cellfun(@strcat, data1, fuhao, data3,'Unif', 0 ); % % save 'E:RSWebmahoyt数据集movielens ewuser.txt' data; % save 'E:RSWebmahoyt数据集movielens ewuser.txt' data1 ; % % dlmwrite('E:RSWebmahoyt数据集movielens ewuser.txt',cell2mat(data), ''); [nrows,ncols]= size(data); filename = 'E:RSWebmahoyt数据集movielens ewuser.txt'; fid = fopen(filename, 'w'); for row=1:nrows fprintf(fid, '%s ', data{row,:}); end fclose(fid);
原始数据是1|23|M|writer|450045,表示用户1,23岁,男,作家,邮编450045。
读取的时候不能直接load或者importdata,由于特殊分隔符的存在,只能督导第一列,所以用textread。
凭借第一列和第三列编程一列cell,比如"1,M"。
关键是如何吧“1,M”存入txt。
各种方法都不行,直接操作文件。