首页 新闻 会员 周边

MATLAB 运行.m输入文件为5个txt文件,一共有5组数据(每组数据包含5个txt文件),如何实现

0
悬赏园豆:20 [已解决问题] 解决于 2018-01-25 16:15

运行的脚本文件为main.m和object.m,其输入文件为in0001.txt-in0005.txt(已实现);但是一共有5组这样的数据,每一个inputdata文件夹里面有5个in0001.txt这样的txt文件,该如何实现批处理,不用手动一个一个执行。Thanks♪(・ω・)ノ

 

 

GALI17的主页 GALI17 | 初学一级 | 园豆:96
提问于:2018-01-23 11:41
< >
分享
最佳答案
0

写个循环输入就可以了。

收获园豆:20
BUTTERAPPLE | 老鸟四级 |园豆:3190 | 2018-01-23 12:43

已经写了一次输入循环了,in0001.txt-in0005.txt就是让main.m循环执行了5次,得到了5个结果存在一个result.txt文件中。现在就是需要执行上面那样的操作5次,虽然把5个文件夹一共25个txt文件作为一个整体循环也是可以的,但是这样输出的话输出的也是在一个result.txt中,需要尝试把每5个结果输出在一个新的result.txt中。

GALI17 | 园豆:96 (初学一级) | 2018-01-23 15:14

@咖喱free: 外面大循环25个,那你在循环里每5个就换个文件名不就可以了嘛?

BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2018-01-23 15:18

因为后续还要处理,分开执行的话比较方便。

GALI17 | 园豆:96 (初学一级) | 2018-01-23 15:21

@BUTTERAPPLE: 请问matlab的每5个输出结果怎么写呢

GALI17 | 园豆:96 (初学一级) | 2018-01-23 15:54

@咖喱free:

// separate_demo
for i =1:6
    if mod(i,3)==0
    import_data_function(i)
    end
end

import_data_function这个是你文件导入的函数,我简单写了一下,你要根据自己的实际情况来写

//import_data_function
function import_data_function(m)
for i= 1:m
    inputFileName = sprintf("DATA/data%d.txt",i);
    input_data(:,i) = importdata(inputFileName);
end
outputFileName = sprintf("DATA/export%d.txt",i);
fileID = fopen(outputFileName,'w');
fprintf(fileID,'%d %d\n',input_data);
fclose(fileID);
end
BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2018-01-23 16:09

@BUTTERAPPLE: 谢谢您,我刚才在尝试可否先打开文件夹,再遍历文件夹内的5个txt文件进行处理,您看这样写行么,我感觉思路是通的,但不知道哪里错了,程序压根没执行。

G = 5;%每个inputdata文件夹里的txt文件个数
Q = 5;%所有文件个数

for q = 1:Q
  folder = 'G:\1科研\KY1\inp';
  foldername = strcat(['inputdata' num2str(q)]);
  addpath = 'foldername';
  files = dir([folder '\*.txt']);

  for k = 1:numel(files);%每个文件夹里面有5个txt文件
    filename = files(k).name;
    input_data = importdata(filename);%注入的测试数据

GALI17 | 园豆:96 (初学一级) | 2018-01-23 17:05

@BUTTERAPPLE: 不行的话,还是得整体进行循环了 = =

GALI17 | 园豆:96 (初学一级) | 2018-01-23 17:06

@咖喱free: 你对 DIR的理解有点问题,Dir是列出文件夹下的文件。

dir directory_name lists the files in a directory

而且这还有一个问题,它会把你文件夹中隐藏的问题也算进去。下面是一张我用Dir的截图

BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2018-01-23 17:26

@BUTTERAPPLE: 噢噢噢,原来是这样,以前没用matlab写过东西,所以想要使用什么函数的时候就是百度上找的,那如果我想按照这个思路来解的话,请问前辈有哪些函数可以适用么?谢谢

GALI17 | 园豆:96 (初学一级) | 2018-01-23 19:53

@BUTTERAPPLE: 前辈,我能发我的程序请你帮我看看么,一直报错,我找不粗来Thanks♪(・ω・)ノ

GALI17 | 园豆:96 (初学一级) | 2018-01-25 14:56

@咖喱free: 好的。

BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2018-01-25 14:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册