【问题标题】:Matlab fopen path to variableMatlab fopen变量路径
【发布时间】:2016-07-11 08:38:25
【问题描述】:

我有一个主代码和一个从 .dat 文件导入数据的函数,我想导入很多案例,因此,我创建了几个目录来构建文件。

这是我正在使用的函数的相关部分:

function [time_,cm,cd_,cl,clf1,clr] = importcd2(filename, startRow, endRow)

formatSpec = '%7s%33s%24s%24s%24s%s%[^\n\r]';

%% Open the text file.
fileID = fopen(filename,'r');

textscan(fileID, '%[^\n\r]', startRow(1)-1, 'ReturnOnError', false);

然后,当我想从主代码调用函数时,我使用:

[a,~,b,~,~,~] = importvar('/folder1/folder2/folder3/folder4/folder5/file1.dat', 1, inf);

其中 a 和 b 是我要从 .dat 文件中导出的变量。我想做的是更改函数,以便 fopen 可以打开整个路径,而不仅仅是文件的 ID(file1.dat),因为我更喜欢有一些目录而不是 30 个或更多的 .dat 文件同一个目录。是否可以?我的问题不同于How can I load 100 files with similar names and/or string in just one step in MATLAB?

提前致谢!

【问题讨论】:

标签: matlab file import path fopen


【解决方案1】:

您可以使用dir命令获取文件夹中的所有.dat文件,然后使用for循环遍历所有文件

function [time_,cm,cd_,cl,clf1,clr] = importcd2(dirname, startRow, endRow)
DatFiles = dir([dirname filesep '*.dat']);

for k=1:numel(DatFiles)
  fileID = fopen(DatFiles(k).Name,'r');
  ...
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多