小编ste*_*ger的帖子

立即将整个文本文件读入MATLAB变量

我想在一个步骤中将一个(相当大的)日志文件读入MATLAB字符串单元格.我用过通常的:

s={};
fid = fopen('test.txt');
tline = fgetl(fid);
while ischar(tline)
   s=[s;tline];
   tline = fgetl(fid);
end
Run Code Online (Sandbox Code Playgroud)

但这很慢.我发现了

fid = fopen('test.txt');
x=fread(fid,'*char');
Run Code Online (Sandbox Code Playgroud)

更快,但我得到一个nx1char矩阵,x.我可以尝试转换x为字符串单元格,但后来我进入char编码地狱; 行分隔符似乎是\n\r,或者是ASCII中的 10和56 (我看过第一行的末尾),但这两个字符通常不会相互跟随,甚至有时会出现独奏.

有一种简单快捷的方法可以一步将ASCII文件读入字符串单元格,还是转换x为字符串单元格?

通过fgetl阅读:

Code                           Calls        Total Time      % Time
tline = lower(fgetl(fid));     903113       14.907 s        61.2%
Run Code Online (Sandbox Code Playgroud)

通过恐惧阅读:

>> tic;for i=1:length(files), fid = open(files(i).name);x=fread(fid,'*char*1');fclose(fid); end; toc

Elapsed time is 0.208614 seconds.
Run Code Online (Sandbox Code Playgroud)

我测试了预分配,它没有帮助:(

files=dir('.');
tic
for i=1:length(files),   
    if files(i).isdir || isempty(strfind(files(i).name,'.log')), continue; end
    %# preassign s to some large cell …
Run Code Online (Sandbox Code Playgroud)

file-io matlab ascii file cell

4
推荐指数
2
解决办法
3万
查看次数

jQuery片段用动画交换两组元素

是否有一些jQuery代码用动画交换2组元素?

我只发现 使用jQuery将移动列表项置于无序列表的顶部但它太有限(只有滑动元素到顶部而不考虑不同的边距).

jquery swap jquery-animate

2
推荐指数
1
解决办法
6588
查看次数

标签 统计

ascii ×1

cell ×1

file ×1

file-io ×1

jquery ×1

jquery-animate ×1

matlab ×1

swap ×1