我有一个包含如下数据的文本文件:
E11E25E0E0E0E16E20E4E0E7E ........... etc.
我想阅读这个文件并绘制其数据。
我该怎么做?
提示:
我想我必须在以下步骤中执行以下操作:
使用(fopen
或dlmread
或fileread
)阅读文本文件数据,可将此数据命名为(R
)。
从数据(E
)中删除字符{R
),可以将此数据重命名为(RR
)。
然后,计算出的数据(RR
)为[ 11 25 0 0 0 16 20 4 0 7 . . . . . ]
。
然后,确定X轴如下:t = 0 : length ( RR )-1;
最后,将此数据绘制如下:plot(t,RR)
答案 0 :(得分:2)
您需要做的就是正确地对字符串进行标记(一旦从文件中读取它)。
让str_
成为您的字符串(str_ = fileread(filename)
)
>> str_ = 'E11E25E0E0E0E16E20E4E0E7E '
然后
nums = strread(str_,'E%d') % # proper token structure has to be prescribed
nums =
11
25
0
0
0
16
20
4
0
7
可以通过plot
完成绘图,无需明确定义时间轴。
plot(nums)
答案 1 :(得分:0)
以下是Acorbe答案的一个版本,如果您在单元格字符串中有多个字符串,它也适用:
>> strs = {
'E11E25E0E0E0E16E20E4E0E7E '
'E11E28E0E0E0E16E20E4E0E7E ' };
>>
>> %// greater flexibility:
>>
>> nrs = cellfun(@str2double, regexp(strs,'\d*','match'), 'UniformOutput',false);
>> nrs = cat(1, nrs{:})
ans =
11 25 0 0 0 16 20 4 0 7
11 28 0 0 0 16 20 4 0 7
>> %// greater speed:
>>
>> C = cellfun(@(x)strread(x, 'E%d'), strs, 'UniformOutput',false);
>> C = [C{:}]
ans =
11 11
25 28
0 0
0 0
0 0
16 16
20 20
4 4
0 0
7 7