Matlab 如何将导入文本拆分为不同的变量

Matlab 如何将导入文本拆分为不同的变量,matlab,Matlab,我有这样的文本(可能是10万行) (时间=HH:mm:ss.ffff,以毫秒为单位) 我想把它导入2个数组 time,a,b time,c,d 最近的路是什么?我还需要存储脚本/代码以备将来使用…尝试使用。在matlab中解析字符串的一个非常强大的工具。matlab有几个文本输入选项。虽然基于regexp的选项(比如textscan)通常是有效的,但听起来您有一个固定的格式,可以通过按顺序手动读取行来更好地处理。我发现这种方法的性能比textscan或import更稳定。如果a、b、c、d不是

我有这样的文本(可能是10万行)

(时间=HH:mm:ss.ffff,以毫秒为单位)

我想把它导入2个数组

time,a,b
time,c,d

最近的路是什么?我还需要存储脚本/代码以备将来使用…

尝试使用。在matlab中解析字符串的一个非常强大的工具。

matlab有几个文本输入选项。虽然基于regexp的选项(比如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)
array1=NaN(,6);
array2=NaN(,6);
fname='path_to_some_file';
fid=fopen(fname);
停止=0;
jj=1;
趁我停下
cline=fgetl(fid);
if ischar(倾斜)
HH=str2double(cline(1:2));
MM=str2double(倾斜(…);
...
阵列1(jj,:)=[HH-MM-SS-MS-a-b];
array2(jj,:)=。。。;
其他的
disp('文件结尾')
停止=1;
结束
结束
fclose(fid)

我无法理解您的问题!你能展示一些代码示例吗?或者告诉我们10和20发生了什么?10和20是常数。我只知道它们就在那里,原则上我真的很讨厌正则表达式。可以用平面脚本或其他什么来完成吗?
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)