数据就像这样
5.1,3.5,1.4,0.2,Iris-setosa
我用这个
读它data = fscanf(file, '%f,%f,%f,%f,%s');
事实证明data
是一个float数组,而不是float和string的组合。那么如何从txt中读取这些数据?
答案 0 :(得分:0)
来自fscanf的Matlab文档:
输出参数
A:数组。
如果格式包括:
只有数字说明符,A是数字。 ...
只有字符或 字符串说明符(%c或%s),A是字符数组。 ......
A. 数字和字符说明符的组合,A是数字,of 班级双。 MATLAB将每个字符转换为数字 当量。即使格式明确,也会发生此转换 跳过所有数值(例如,格式为'%* d%s')。
所以你最好的选择是以字符串形式读取所有内容,然后使用str2num或str2double或类似方法将数字字符串转换为数值。
答案 1 :(得分:0)
或者,因为您知道有4个浮点值确实存储了一个浮点值,然后其余的存储了字符串的数字ASCII值,您可以随时拆分数据并转换您应该知道的部分。字符串到char。类似的东西:
flt = data(1:4); str = char(data(5:end));