使用 dlmread 读取许多(1000 多个)文件 - 循环使用不同的文件名?
Reading many (1000+) files with dlmread - Loop with varying filenames?
我对 matlab 或相关编码非常陌生。
我是运行一个输出数千个文件的模拟。这些文件是 .vtk,可以被 dlmread 正确读取。
我尝试阅读其中一个,将其定义为矩阵并从该矩阵中提取列向量。这很好用。我现在需要的是不仅要阅读其中的一个,而且要全部阅读。文件名因数字而异,例如 cover1000.vtk、cover2000.vtk、....、cover1200000.vtk.
我希望所有这些都用 dlmread 读取并存储为不同的矩阵。我怎么做?这是我现在拥有的,一次处理一个文件:
A_1000 = dlmread ('cover1000.vtk') %matrix a containing values from vtk file_in_loadpath
fx_1000 = A(1:20,1) %extracting vector with specific values
fx_ave_1000 = sum(fx_1000)/length(fx_1000) % average of the values in extracted vector
我正在考虑循环,但如何创建具有不同文件名的循环?
我也读过循环不是最好的主意,单元格数组会更好。但我完全不知道如何实现这些。
感谢您的帮助!
干杯
您可以使用函数 dir
列出目录中的所有 vtk 文件,然后遍历这些文件。
filename = dir('*.vtk'); %list all the vtk files in your current directory.
for ii = 1:length(filename)
A = dlmread (filename(ii).name) %matrix a containing values from vtk file_in_loadpath
fx{ii} = A(1:20,1) %extracting vector with specific value
fx_ave{ii} = sum(fx{ii})/length(fx{ii}) % average of the values in extracted vector
end
结果现在存储在两个单元格中:fx
和 fx_ave
。
我对 matlab 或相关编码非常陌生。
我是运行一个输出数千个文件的模拟。这些文件是 .vtk,可以被 dlmread 正确读取。
我尝试阅读其中一个,将其定义为矩阵并从该矩阵中提取列向量。这很好用。我现在需要的是不仅要阅读其中的一个,而且要全部阅读。文件名因数字而异,例如 cover1000.vtk、cover2000.vtk、....、cover1200000.vtk.
我希望所有这些都用 dlmread 读取并存储为不同的矩阵。我怎么做?这是我现在拥有的,一次处理一个文件:
A_1000 = dlmread ('cover1000.vtk') %matrix a containing values from vtk file_in_loadpath
fx_1000 = A(1:20,1) %extracting vector with specific values
fx_ave_1000 = sum(fx_1000)/length(fx_1000) % average of the values in extracted vector
我正在考虑循环,但如何创建具有不同文件名的循环? 我也读过循环不是最好的主意,单元格数组会更好。但我完全不知道如何实现这些。
感谢您的帮助!
干杯
您可以使用函数 dir
列出目录中的所有 vtk 文件,然后遍历这些文件。
filename = dir('*.vtk'); %list all the vtk files in your current directory.
for ii = 1:length(filename)
A = dlmread (filename(ii).name) %matrix a containing values from vtk file_in_loadpath
fx{ii} = A(1:20,1) %extracting vector with specific value
fx_ave{ii} = sum(fx{ii})/length(fx{ii}) % average of the values in extracted vector
end
结果现在存储在两个单元格中:fx
和 fx_ave
。