一个main.m文件,其输入数据为in0001.txt这样的文件,in0001.txt~in0020.txt。现在每次都是执行一次程序得到一个结果,再手动更改注入文件名,再执行程序得到结果。手动操作比较麻烦,请问如何让它能够依次进行,不需要一次次手动更改文件名来执行?读入数据代码如下,谢谢Thanks♪(・ω・)ノ
clear all
close all
clc
tic%统计运行时间
%--------------------------------开始注入初始数据---------------------------------------
input_data = importdata('in0001.txt');%注入的测试数据
input_data_shift = input_data';
好像可以使用execl存文件名来解决的,但是我没有尝试成功。
for k = 1:20
input_data{k} = importdata(b{k});%注入的测试数据
end
input_data_shift{k} = input_data{k}';
新手一枚,请前辈帮助,Thanks♪(・ω・)ノ
for i= 1:2
fileName = "DATA/data"+i+".txt";
input_data(:,i) = importdata(fileName);
end
input_data
这样吗?我的data1
是
1
2
3
4
5
6
7
data2
为
1
1
1
1
1
1
1
结果为
input_data =
1 1
2 1
3 1
4 1
5 1
6 1
7 1
这样更简便:
for i= 1:2
fileName = sprintf("DATA/data%d.txt",i);
input_data(:,i) = importdata(fileName);
end
input_data
@BUTTERAPPLE: 嗯呐,我后来试了一个方法,好像和您的一样的,也成功了:
for k = 1:3;
if k < 9
filename = strcat(['in000' num2str(k) '.txt']);
end
input_data = importdata(filename)%注入的测试数据
end
Thanks♪(・ω・)ノ
不过请问你知道如何把每次得到的结果也依次输出到不同的txt文件么?
@咖喱free:
for i= 1:2
fileName = sprintf("DATA/data%d.txt",i);
input_data(:,i) = importdata(fileName);
end
input_data
fileID = fopen('DATA/exp.txt','w');
fprintf(fileID,'%d %d\n',input_data);
fclose(fileID);
type exp.txt
存取文件用到了这个 fprintf
你可以去详细看看,上面我只给你了一个解法。
@BUTTERAPPLE: 好的,谢谢~