我是靠谱客的博主 优秀电源,最近开发中收集的这篇文章主要介绍matlab为不同参数设置独立的日志记录文件(一个参数有一个txt来记录其值,可用于参数归一化),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在matlab学习过程中,遇到了一个问题:
我要生成一堆数据,然后进行综合评价,这就需要对数据进行归一化处理
但是,我的数据不是现成的,而是每次的数据都是新生成的,这个进行归一化就比较头疼,想了个办法
可以记录每次的相对变化率(后-前)/前
然后把每次的变化率记录下来,然后再利用归一化公式y=(x-xmin)/(xmax-xmin)
就可以达到目的
废话不多说,直接上代码先
function writedowndataa(datab) %datab是一个矩阵
flodername='.dif_log'; %我想设置的日志文件夹地址
truedata=datab(:,1); %我只需要datab里的第一列
truedata=truedata(1:7); %并且我只要前7个数据
pathfileName={'xxs','pjhd','pjtd','pjdbd','bzc','fzxzb','zgpf'}; %设置每个日志的名字
dataname=pathfileName; %给dataname提前分配内存
for i=1:length(truedata) %我要给这7个数据写log所以直接整循环
namet=dataname(i); %这句好像可以直接写到下一句里,调试的时候用了下也懒得改了
pathfileName(i)={strcat(flodername,namet,'.txt')}; %拼接字符串,把要写的log的地址以及名字拼一起,这里其实是问题关键所在
%这个东西是个元胞数组(cell类型),所以赋值的时候必须要加{},而且用[a,b,'.txt']字符串拼接根本拼不了,必须还得用strcat
b=char(pathfileName{i}); %写完全称之后一定要把cell转成char,否则它读不懂是文件路径,无法写入
output=fopen(b,'a+');
fprintf(output,'%fn',truedata(i));
fclose(output);
end
end
好了,现在每个参数每次计算都会被记录到log里,剩下的工作就简单了,只需要分别读取对应的xx.txt,然后在里面找最大值和最小值用归一化公式就可以解决了
最后
以上就是优秀电源为你收集整理的matlab为不同参数设置独立的日志记录文件(一个参数有一个txt来记录其值,可用于参数归一化)的全部内容,希望文章能够帮你解决matlab为不同参数设置独立的日志记录文件(一个参数有一个txt来记录其值,可用于参数归一化)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复