相关疑难解决方法(0)

带有零填充数字的Matlab文件名

我有11×11的矩阵,我救了他们的.mat文件从F01_01F11_11.我必须Func在每个文件上运行一个函数.由于需要很长时间,我想编写一个脚本来自动运行该功能:

for i=01:11  
    for j=01:11  
        filename=['F',num2str(i), '_', num2str(j),'.mat'];  
        load(filename);  
        Func(Fi_j);   % run the function for each file  Fi_j  
    end  
end  
Run Code Online (Sandbox Code Playgroud)

但它不起作用,Matlab无法找到mat文件.
有人可以帮忙吗?

matlab string-formatting

4
推荐指数
1
解决办法
6629
查看次数

检查目录中是否存在多个文件 - matlab

我如何检查当前目录中是否存在多个csv文件?

我有一个名为PowerOutput.csv的csv文件,我可以看看它是否存在

exist('PowerOutput.csv','file')
Run Code Online (Sandbox Code Playgroud)

但是,我可以拥有许多这样的文件,例如PowerOutput1.csv,PowerOutput2.csv,PowerOutput3.csv等等.

查找目录中存在哪些文件的最佳方法是什么?

目前我尝试过:

TopFolder = pwd;
SubFolder = dir(TopFolder);
SubFolder = {SubFolder.name};
SubFolder(strncmp(SubFolder,'.',1)) = [];

% -- find the number of PowerOutput
num_Power = strncmp({'PowerOutput'}, SubFolder,length('PowerOutput'));
num_Power(num_Power == 0) = [];
num_Power = 1:length(num_Power);
Run Code Online (Sandbox Code Playgroud)

然后我可以通过以下方式导入数据:

% -- import inflow 
for i = 1:length(num_Power);
    filename = fullfile(TopFolder,horzcat('PowerOutput',num2str(num_Power(i)),'.csv'));
    fid = fopen(filename);
    headers = textscan(fid, '%s%s', 1, 'delimiter',',');
    dat = textscan(fid,'%s%f%f','delimiter',',','headerlines',1);
    fclose(fid);
end
Run Code Online (Sandbox Code Playgroud)

但这似乎是一种非常冗长的做法.有什么建议?

csv matlab file

4
推荐指数
1
解决办法
2243
查看次数

标签 统计

matlab ×2

csv ×1

file ×1

string-formatting ×1