我对 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
。
关于arrays - 使用 dlmread 读取许多(1000+)文件 - 循环使用不同的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40801269/