我对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
我正在考虑一个循环,但是如何创建一个具有不同文件名的循环? 另外我读过一个循环不是最好的主意,单元格阵列会更好。但我完全不知道如何实现这一点。
感谢您的帮助!
欢呼声
答案 0 :(得分:4)
您可以使用函数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
。