我正在处理NSL-KDD数据集,我想用matlab将一些字符串更改为数值,这是我的代码
a = xlsread ('20 Percent Training Set.xls'); % normal data
[n,p]= size (a);
% calculate mean for normal data
for z =1:n
for v=1:p
b = a(z,v);
if strcmp(b,'tcp')
b=1;
end
end
end
a
但是当我打印矩阵a
NaN值仍未改变时,我能做些什么,谢谢。
答案 0 :(得分:0)
问题是您要更改b
,而不是a
。您需要设置a(z,v)=1
。因此,您的代码应为:
a = xlsread ('20 Percent Training Set.xls'); % normal data
[n,p]= size (a);
% calculate mean for normal data
for z =1:n
for v=1:p
b = a(z,v);
if strcmp(b,'tcp')
a(z,v)=1;
end
end
end
a