有几组数据,已经实现了数据处理,如果将数据单个读入用了”load"~~
由于数据有点大,现在想实现批处理,就是想让几组数据依次自动读入,把已经实现的程序改成函数,用个循环调用~~实现处理过的数据保存,比如初步想法如下,用四组数据举例~
readfile={'D:\Model1_Set1.mat',
'D:\Model1_Set2.mat','D:\Model1_Set4.mat','D:\Model1_Set5.mat'
}
writefile={'D:\Model1_Set1.txt',
'D:\Model1_Set2.txt','D:\Model1_Set4.txt','D:\Model1_Set5.txt'
}
最终将数据甚至图片进行保存成4个不同的文件
网上搜到了一些方法,自己没实现出来,求大神帮助。。
matlab 批处理 依次读入,自动保存的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- Coding_风清扬 2014-12-21 13:32关注
一、在MATLAB新建一个txt_transform函数
function txt_transform(file_in_path,file_num)
total_num=file_num; %文件总个数
name=1:total_num; %文件名向量
txt='.txt'; %输入输出文件格式
for i=1:total_num;
%生成输入文件的路径和文件名
namei=name(i);
namei=int2str(namei);
fin_name=cat(2,file_in_path,namei,txt);
%数据读入
fid1=fopen(fin_name,'r');
[y1]=fscanf(fid1,'%f'); %数据类型%f,且数据是以空格为界逐个读入
fclose(fid1);
x=[];
y=[];
z=[];
k=length(y1)/3;
for i=1:length(y1)
if (mod(i,3)==1)
x=[x,y1(i)]; % 写入x
else
if(mod(i,3)==2)
y=[y,y1(i)]; % 写入y
else
z=[z,y1(i)]; % 写入z
end
end
end
%数据处理 & 数据输出
fid=0;
fid=fopen(fin_name,'a+');
fclose(fid);
fid=fopen(fin_name,'wt'); %准备写文件
for i=1:k
fprintf(fid,'%f %f %f\n',x(i),y(i),z(i));
end
fclose(fid); %关闭
end二、函数的调用与实现
例如,在untitle.m文件中写入
file_in ='C:\Users\Administrator\Desktop\新建文件夹\points';
txt_transform(file_in,3);三、支持文件与数据的变化
需要在桌面的新建文件夹中放入3个txt文件: points1.txt~point3.txt
本人在这3个文件均写入:
1 2 3
4 5 6
运行后的结果为:
1.000000 2.000000 3.000000
4.000000 5.000000 6.000000
函数的主要作用:将文件中的每行数据用两个空格分开(请忽略数据格式的变化,即小数点后面多了些0).编程、码字很辛苦,望您采纳!
解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器