我的文字是(可能是100K线这样)你怎么能拆分导入文本不同的变量
time,10 a b,20 c d
(时间= HH:MM:ss.ffff与毫秒)
我想要将其导入2个阵列中
time,a,b
time,c,d
最短的方式是什么?我需要存储脚本/代码以供将来使用...
我的文字是(可能是100K线这样)你怎么能拆分导入文本不同的变量
time,10 a b,20 c d
(时间= HH:MM:ss.ffff与毫秒)
我想要将其导入2个阵列中
time,a,b
time,c,d
最短的方式是什么?我需要存储脚本/代码以供将来使用...
MATLAB有几个文本输入选项。虽然基于正则表达式的选项(如textscan)通常是有效的,但听起来好像你有一个固定的格式,可以通过顺序手动读取这些线来处理。我发现使用此方法的性能比使用textscan或import更一致。如果a,b,c,d不是固定宽度,则需要执行其他操作。在这种情况下,我只需使用导入向导来设置输入,然后保存导入代码并根据需要进行修改以实现自动化。
array1 = NaN(<numberoflines>,6);
array2 = NaN(<numberoflines>,6);
fname = 'path_to_some_file';
fid = fopen(fname);
stop = 0;
jj = 1;
while ~stop
cline = fgetl(fid);
if ischar(cline)
HH = str2double(cline(1:2));
MM = str2double(cline(...));
...
array1(jj,:) = [HH MM SS MS a b];
array2(jj,:) = ...;
else
disp('End of file')
stop = 1;
end
end
fclose(fid)
你的问题对我来说是不可理解的!你能展示一些代码示例吗?或向我们展示10和20发生了什么? – 2013-02-24 17:34:11
10和20是常数。我只知道他们在那里 – 2013-02-24 17:35:33